/*处理来自系统和内部的消息*/
uiPrompts_HandleMessage
/*从earbud_ui_prompts_table匹配当前事件是否设置了提示音*/
uiPrompts_GetPromptIndexFromMappingTable
/*提示音播放任务调度*/
uiPrompts_SchedulePromptPlay
uiPrompts_PlayPrompt
appKymeraPromptPlay
/*通知对端同步播放提示音*/
Ui_RaiseUiEvent(ui_indication_type_audio_prompt, prompt_index, time_to_play)
peerUi_ForwardToPeer(sniff_ui_event_funcptr)
peerUi_ForwardUiEventToSecondary
appPeerSigMarshalledMsgChannelTx
/*由对端请求同步播放提示音*/
peerUi_HandleMarshalledMsgChannelRxInd
peerUi_InjectUiEvent
Ui_NotifyUiEvent
ui_indication_type_audio_prompt
UiPrompts_NotifyUiIndication
uiPrompts_PlayPrompt
appKymeraPromptPlay
首先我们打开earbud_prompts_config_table.c文件
结合上面的代码逻辑分析,当开机的时候(POWER_ON)事件触发,就会去播放power_on_8k.sbc这个语言文件。需要说明的是,3020余3040支持两种音频格式sbc与pcm,但是实际测试中发现,如果使用高通提供的.wav格式的提示音,播音乐是播放提示音会出卡顿,所以最好还是转换为sbc格式使用。
如何新增一个事件,并加入新的提示音呢?比如新增低电提示音
1.首先我们先新增一个系统事件BATTERY_LOW
2.在earbud_ui_prompts_table中加入低电提示音配置
当低电的时候,通过TaskList_MessageSendId这个接口发送BATTERY_LOW消息,他会把消息发到所有注册到tasklist的task, led,prompt,tone模块都能收到,进而做对应的UI提示
3.把battery_low_8k.sbc加入工程中
将adk提供的wav格式的低电提示音通过工具转换为sbc格式,放到earbud\prompts文件夹,然后在MDE中加入到工程,重新编译,deploy all即可
加入提示音的时候,要注意空间大小,默认分配的是400k byte的空间,且那些.edkcs文件已经用了120k左右的空间,所以只有280k的空间可用
相关的工具资料等,请到我的博客<qcc514x_qcc304x开发调试笔记>最下面的网盘链接中下载。
本文地址:https://blog.csdn.net/ylangeia/article/details/107287220
如对本文有疑问, 点击进行留言回复!!
荐 超强的入门文章 !!! JavaScript 速成计划第二篇(杂项详解:JS操作HTML 与 CSS、异常、事件)!
教你搭建 nodejs+mongoose+Graphql+Vue+Typescript 框架(上)
【Nginx】如何为已安装的Nginx动态添加模块?看完我懂了!!
网友评论