mt6735 [Audio APP]如何监听手机上面音乐 /FM等多媒体声音的播放/停止的动作?

[DESCRIPTION]
MT6735如何监听手机上面音乐/FM等多媒体声音的播放/停止的动作?
[SOLUTION]
android有一个AudioFocus的机制,要播放声音的app可以去requestAudioFocus(),当拿到audiofocus之后再播放音乐 ,当失去audiofocus的时候做停止播放的动作,当自己的播放动作结束后,释放audiofocus。通过audiofocus可以做到 监听有使用audiofocus的那些app的播放/停止的动作,可以达到在同一时间,只有拿到audiofocus的app才可以播放音 乐的目的,这样可以避免各个app的声音相互冲突。


代码例子如下:
1)要播放时,先requestAudioFocus(),再Startplayback:
AudioManageram=mContext.getSystemService(Context.AUDIO_SERVICE);
...
//Requestaudiofocusforplayback
intresult=am.requestAudioFocus(afChangeListener,
//Usethemusicstream.
AudioManager.STREAM_MUSIC,
//Requestpermanentfocus.
AudioManager.AUDIOFOCUS_GAIN);
if(result==AudioManager.AUDIOFOCUS_REQUEST_GRantED){
am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
//Startplayback.
}


2)当播放结束时,要abandonAudioFocus,这样之前被打断的app可以重新得到audiofocus,恢复播放:
//Abandonaudiofocuswhenplaybackcomplete
am.abandonAudioFocus(afChangeListener);


3)还要注册OnAudioFocusChangeListener(),这样当audiofocus被别人拿走时,可以及时暂停播放。当别人归还 audiofocus时,可以恢复播放:
OnAudioFocusChangeListenerafChangeListener=newOnAudioFocusChangeListener(){
publicvoidonAudioFocusChange(intfocusChange){
if(focusChange==AUDIOFOCUS_LOSS_TRANSIENT
//Pauseplayback
}elseif(focusChange==AudioManager.AUDIOFOCUS_GAIN){
//Resumeplayback
}elseif(focusChange==AudioManager.AUDIOFOCUS_LOSS){
am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
am.abandonAudioFocus(afChangeListener);
//Stopplayback
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值