bes2300之提示音配置(四)

代码逻辑分析

用户层接口,与led模块一样,设置状态播放相应的音频 

app_voice_report
	app_voice_report_handler
#if defined(IBRT) /* 对于ibrt tws工程 */
        app_ibrt_if_voice_report_handler(id, isMerging);
			app_ibrt_if_voice_report_init
				if(ibrt没有启用 && 提示音仅本地播放 && tws没有连接)
					trigger_media_play
				else
					if(主机-master)
						trigger_media_play
					else(从机slave)
						/* 将提示音的id号发给主机*/
						tws_ctrl_send_cmd(APP_TWS_CMD_VOICE_REPORT_REQUEST,...)
						
#else /* 对于立体声工程 */
        trigger_media_play(id, device_id, isMerging);
#endif
			/* trigger_media_play调用,发给app线程的APP_MODUAL_AUDIO_MANAGE模块处理 */
			app_audio_manager_sendrequest(APP_BT_STREAM_MANAGER_START,BT_STREAM_MEDIA, ...)



/* app线程 音频管理模块(APP_MODUAL_AUDIO_MANAGE) 的处理回调函数*/
app_audio_manager_handle_process
	bt_media_start
		BT_STREAM_MEDIA
		/*发给app线程的APP_MODUAL_AUDIO模块处理 */
		app_audio_sendrequest(APP_PLAY_BACK_AUDIO, (uint8_t)APP_BT_SETTING_OPEN, media_id);



/* app线程 音频处理模块(APP_MODUAL_AUDIO) 的处理回调函数*/
app_audio_handle_process
	case APP_BT_SETTING_OPEN:
	app_bt_stream_open
		case APP_PLAY_BACK_AUDIO:
		app_play_audio_onoff
			media_Play_init_audio
				/* 这里去关联具体的音频文件 */
				media_runtime_audio_prompt_update

			/* 这里判断是否只是仅本地播放,不是的话,把播放的id同步给对端*/
			if (!isPlayingLocally)
				app_ibrt_voice_report_trigger_init(status->aud_id);
					if(主机)
						tws_ctrl_send_cmd(APP_TWS_CMD_VOICE_REPORT_START,...)
			
			/* 启动codec,关联音频链路开始播放 */
			af_stream_open(AUD_STREAM_ID_2, AUD_STREAM_PLAYBACK, &stream_cfg);

从机同步主机播报,不能确定是在哪里,没有看到接口调用,不知道是不是封装了,下面有两个地方可以参考:

app_ibrt_voice_report_request_start_handler
	trigger_media_play


app_ibrt_sync_mix_prompt_req_handler
	app_tws_cmd_sync_mix_prompt_req_handler
		audio_prompt_start_playing
			media_runtime_audio_prompt_update
			tws_enable_mix_prompt

 

提示音转换

不同的音源,有不同默认采样率,一般我们拿到的都是mav或者是mp3的格式,需要进行转换才能使用。可以使用一些软件转换采样率,如 Cool Edit ProAdobe AuditionGoldWave等等。

打开音频文件之后,另存为有三个地方务必设置:采样率 16k16bit,单声道。另外在实际使用过程发现,除了采样率和bit位之外,保存格式也很重要。如果发现转换失败的情况,不妨用GoldWave保存如下图的格式在试试

然后我们就可以使用bes的转换工具了

如图,wav2sbc.exe则是bes的转换工具,使用方式为

wav2sbc.exe -s <filepath>

注意:该工具只支持8k和16k的采样率

这里我也写了一个批处理的脚本,把要转换的.wav文件放在wav文件夹,双击运行脚本,就会在sbc文件夹和txt文件夹分别生成.sbc与.txt的文件了,非常方便!

 

 

相关资料请到<bes2300开发调试笔记>文章底部的网盘链接中下载!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在云巅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值