前段时间有这样一个需求,webview显示一个带音乐的网页,在播放音乐的时候进入第三方软件暂停播放,返回时继续播放。后来参考了两篇文章解决了这个问题。
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
OnAudioFocusChangeListener listener = new OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
DebugLog.d(TAG, "onAudioFocusChange: "
+ focusChange);
}
}
在onPause方法中执行了如下代码(把播放音乐的焦点拿走):
int i =0;
do {
int result = audioManager.requestAudioFocus( listener
, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
DebugLog.d(TAG, "I get Audio right: ");
break;
}
i++;
} while (i < 10);
在onResume方法中执行如下代码(释放拿走的焦点):
if (audioManager!= null) {
audioManager.abandonAudioFocus(listener);
audioManager = null;
}
在执行以上两段代码时,有需要加上判断:
if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.ECLAIR_MR1){
return;
}
参考的两篇文章:
http://blog.csdn.net/u013478336/article/details/40826673
http://blog.csdn.net/shuaicike/article/details/39930823
以上代码也是参考了两篇文章,只取了我需要的部分