芯方式

如何通过普通耳机上的按键 控制音乐播放器的暂停和播放?

0
阅读(1528)

[DESCRIPTION]


如何通过普通耳机上的按键控制音乐播放器的暂停和播放?来自半导体社群


[SOLUTION]


通话状态时手机会起一个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的暂停/播放操作即可