JL杰理蓝牙芯片交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 859|回复: 1

AD14如何实现录音开始和录音结束都有提示音

[复制链接]

7

主题

0

回帖

31

积分

论坛游民

Rank: 2

积分
31
发表于 2023-9-15 10:07:43 | 显示全部楼层 |阅读模式

注册登录,了解更多芯片技术。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 咕噜咕噜 于 2023-9-15 10:16 编辑

回复

使用道具 举报

15

主题

27

回帖

365

积分

版主

Rank: 7Rank: 7Rank: 7

积分
365
发表于 2023-9-15 10:15:46 | 显示全部楼层
首先确认开始录音和关闭录音消息:MSG_RECODE_START,
开始录音如果要加提示音,需要在提示音播放完成之后再发录音开始消息,如下
  1. void my_du_play(void)
  2. {
  3.     int msg[2], err;
  4.     void *pfs = 0;
  5.     void *pfile = 0;
  6.     dec_obj *obj = 0;
  7.     decoder_init();

  8.     err = vfs_mount(&pfs, (void *)NULL, (void *)NULL);
  9.     if (err) {
  10.         log_info("vfs_mount err : 0x%x\n", err);
  11.     }
  12.     err = vfs_openbypath(pfs, &pfile, "/dir_tone/du.f1a");
  13.     if (err) {
  14.         log_info("fs_openbypath err : 0x%x\n", err);
  15.         vfs_fs_close(&pfs);

  16.     }
  17.     obj = decoder_io(pfile, BIT_F1A1 | BIT_A, NULL, 0);
  18.     if (NULL == obj) {
  19.         log_info("fs_openbypath err : 0x%x\n", err);
  20.         vfs_file_close(&pfile);
  21.         vfs_fs_close(&pfs);
  22.     }

  23.     while (1) {
  24.         err = get_msg(2, &msg[0]);
  25.         if (MSG_NO_ERROR != err) {
  26.             msg[0] = NO_MSG;
  27.             log_info("get msg err 0x%x\n", err);
  28.         }

  29.         switch (msg[0]) {
  30.         case MSG_F1A1_FILE_END:
  31.         case MSG_MP3_FILE_END:
  32.         case MSG_WAV_FILE_END:
  33.             decoder_stop(obj, NO_WAIT);
  34.             vfs_file_close(&pfile);
  35.             vfs_fs_close(&pfs);
  36.             goto __tone_over_deal;
  37.             break;
  38.         case MSG_500MS:
  39.             wdt_clear();
  40.             break;
  41.         }
  42.     }
  43. __tone_over_deal:
  44.     post_msg(1, MSG_RECODE_START);
  45.     //log_info("-----tone played over!!!\n");
  46. }
复制代码

结束录音的提示音要在录音结束之后发播放:
  1. case MSG_RECODE_START:
  2.             if (ENC_ING == record_obj.enc_status) {
  3.                 /* 结束录音并播放录音 */
  4.                 encode_stop(&record_obj);
  5.                 post_msg(1, MY_TONE_PLAY_2);
  6.                 //post_msg(1, MSG_PP); //cyc
  7.             } else {
  8.                 /* 开始录音 */
  9.                 decoder_stop(p_dec_obj, NEED_WAIT);
  10.                 encode_file_fs_close(&record_obj);
  11.                 encode_start(&record_obj);
  12.                 log_info("dev:%d fs_name:%s\n", record_obj.dev_index, record_obj.fs_name);
  13.             }
  14.             break;
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|JL杰理蓝牙芯片交流论坛 ( 粤ICP备18068352号 )

GMT+8, 2024-12-14 19:49 , Processed in 0.064717 second(s), 23 queries .

Powered by yunthinker云信

© 2001-2023 yunthinker Team.

快速回复 返回顶部 返回列表