前段时间有这样一个需求,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);
- if (audioManager!= null) {
- audioManager.abandonAudioFocus(listener);
- audioManager = null;
- }
- if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.ECLAIR_MR1){
- return;
- }
参考的两篇文章:
http://blog.youkuaiyun.com/u013478336/article/details/40826673
http://blog.youkuaiyun.com/shuaicike/article/details/39930823
以上代码也是参考了两篇文章,只取了我需要的部分