从BES拿到的源码实际上已经十分成熟了app_ibrt_ui_test.cpp我们可以看到键盘的点击事件的绑定
PWR默认进入app_ibrt_normal_ui_handle_key,FN1、2 进入app_ibrt_ui_test_key_io_event
PWR还多封装了一层来应对启用不同宏进入不同的handle_key
找到正确的按键事件接口我们已经成功了一半。status存入的就是按键的值和相应的事件(单击双击)
void app_ibrt_ui_test_key_io_event(APP_KEY_STATUS *status, void *param)
{
TRACE(3,"%s %d,%d",__func__, status->code, status->event);
switch(status->event)
{
case APP_KEY_EVENT_CLICK:
if (status->code== APP_KEY_CODE_FN1)
{
app_ibrt_if_event_entry(IBRT_OPEN_BOX_EVENT);
}
else if (status->code== APP_KEY_CODE_FN2)
{
app_ibrt_if_event_entry(IBRT_FETCH_OUT_EVENT);
}
else
{
app_ibrt_if_event_entry(IBRT_WEAR_UP_EVENT);
}
break;
case APP_KEY_EVENT_DOUBLECLICK:
if (status->code== APP_KEY_CODE_FN1)
{
app_ibrt_if_event_entry(IBRT_CLOSE_BOX_EVENT);
}
else if (status->code== APP_KEY_CODE_FN2)
{
app_ibrt_if_event_entry(IBRT_PUT_IN_EVENT);
}
else
{
app_ibrt_if_event_entry(IBRT_WEAR_DOWN_EVENT);
}
break;
}
}
剩下的就略显麻烦,首先你需要通过工具将wav音源转换成采样率设置为 16000,声道设置为单声道,采样精度 16 位的16进制txt格式文件,转化工具和过程,然后include进入项目
#ifdef MEDIA_PLAYER_SUPPORT
const uint8_t EN_POWER_ON [] = {
#include "res/en/SOUND_POWER_ON.txt"
};
const uint8_t EN_POWER_OFF [] = {
#include "res/en/SOUND_POWER_OFF.txt"
};
模仿AUD_ID_POWER_ON的过程,在media_runtime_audio_prompt_update添加绑定判断中英文(实际上我没有判断)以及新增枚举值 AUD_ID_ENUM,和APP_STATUS_INDICATION_T
最后再按键点击事件——单击事件中使用接口函数调用即可
app_voice_report(APP_STATUS_INDICATION_TEST,0);
void app_ibrt_ui_test_key_io_event(APP_KEY_STATUS *status, void *param)
{
TRACE(3,"%s %d,%d",__func__, status->code, status->event);
uint8_t senddata[]={"abc"};
switch(status->event)
{
case APP_KEY_EVENT_CLICK:
if (status->code== APP_KEY_CODE_FN1)
{
TRACE(0,"FN1 onepress");
//app_tws_set_side(EAR_SIDE_RIGHT);//改为左声道
app_voice_report(APP_STATUS_INDICATION_TEST,0);
}
else if (status->code== APP_KEY_CODE_FN2)
{
app_ibrt_if_event_entry(IBRT_FETCH_OUT_EVENT);
}
else
{
app_ibrt_if_event_entry(IBRT_WEAR_UP_EVENT);
}
break;
PS 默认左声道/app_tws_set_side(EAR_SIDE_RIGHT)改为右声道
关键函数
app_ibrt_ui_test_key_io_event | 按键事件 |
---|---|
app_voice_report | 音频播放接口 |
res_audio_data.h | include音频文件(txt格式) |
media_runtime_audio_prompt_update | 音频绑定 |
txt音频工具自存