有上下键的耳机不能切换上一首、下一首

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ch_xin/article/details/8363612

 

有上下键的耳机音乐播放器/FM播放时,耳机无法进行音乐暂停/播放、或者 上一首/下一首切换,原始设计并不支持此功能。
不过我们可以参考mtk online的FAQ进行修改。类似的FAQ有:如何通过普通耳机上的按键控制音乐播放器的暂停和播放?

通话状态时手机会起一个timer,来不断检测耳机端是否有按键中断上来,如此,手机就能响应耳机端的接听/挂断电话的功能;
非通话状态时手机不会起timer去检测耳机端的中断,也就无法响应耳机的按键事件;
为了使得手机在非通话状态下也能检测到耳机端的按键时间,可做如下修改:在耳机插入的时候就起timer去检测耳机端的按键中断,修改代码如下:
1、修改函数aux_task_main,将其中如下Code:
case MSG_ID_AUX_PLUGIN:
break;
修改为:
case MSG_ID_AUX_PLUGIN:
poll_timer=KAL_TRUE;
if(aux_timer_open==1)
{
aux_detect_mode=AFE_TurnOnMicBias();/*voltage source*/
stack_start_timer(&aux_timer, 0, TURN_ON_BIAS_INTERVAL);
}
break;
如此,手机在非通话状态下也能够监测到耳机的按键中断

2、为了不让通话结束后停止这个timer,做如下修改:
case MSG_ID_AUX_CALL_DISCONNECT_REQ_IND
。。。
//注释掉如下的code:
/*{
poll_timer = KAL_FALSE;
...
}
*/
3、接下来修改函数GpioDetectInd,在分支:
case EXT_DEV_KEY_1:
中添加对Audio Player的暂停/播放操作,或者 上一首/下一首切换即可。

猜你喜欢

转载自blog.csdn.net/ch_xin/article/details/8363612