后台播放音乐时播放视频,音乐暂停播放的处理方法

 当使用Google自带的图库播放器播放视频时,可以暂停Google自带音乐播放器的播放。

处理方法是通过在启动图库播放器播放视频时,发送music暂停的广播,music接收到此广播后暂停播放音乐。代码处理如下:

 

1.图库播放器发送music暂停的广播

开始播放视频时,在MovieViewControl.java文件的MovieViewControl类的构造函数中发送了暂停music的广播。

MovieViewControl.java文件位于packages\apps\gallery3d\src\com\cooliris\media目录下。

(1)参数定义:

  // Copied from MediaPlaybackService in the Music Player app. Should be
   // public, but isn't.
   private static final String SERVICECMD =
           "com.android.music.musicservicecommand";
   private static final String CMDNAME = "command";
   private static final String CMDPAUSE = "pause";

(2)发送广播

       Intent i = new Intent(SERVICECMD);
       i.putExtra(CMDNAME, CMDPAUSE); // 发送暂停音乐的广播
       context.sendBroadcast(i);

2.Music接收暂停广播

音乐播放器接收播放视频时发送的广播的代码位于MediaPlaybackService.java文件中MediaPlaybackService类的成员变量mIntentReceiver的onReceive函数中。

MediaPlaybackService.java文件位于packages\apps\music\src\com\android\music目录下

代码如下:

(1)参数定义:

public static final String CMDPAUSE = "pause";

public static final String PAUSE_ACTION = "com.android.music.musicservicecommand.pause";
(2)接收广播
           } else if (CMDPAUSE.equals(cmd) || PAUSE_ACTION.equals(action)) { // 接收到音乐暂停的广播
                    if(isPlaying()){
                               mPausedByOthers = true;
                    }
                pause();
                mPausedByTransientLossOfFocus =false;
           }

3.Log输出如下:

(1)开始播放音乐

07-09 17:32:20.054 I/AudioService(  289): AudioFocus  requestAudioFocus()from android.media.AudioManager@40592b48com.android.music.MediaPlaybackService$5@405918f0

07-09 17:32:20.054 D/MediaPlaybackService(7157): Start playback

07-09 17:32:20.554 D/MediaPlaybackService(7157): sleep(500)

07-09 17:32:20.554 D/MediaPlaybackService(7157): MediaPlayer start

 

(2)开始播放视频,music接收到暂停的广播,暂停music的播放

07-09 17:32:34.574 D/MediaPlaybackService(7157): mIntentReceiver.onReceive com.android.music.musicservicecommand / pause

07-09 17:32:34.574 D/MediaPlaybackService(7157): MediaPlayer pause

07-09 17:32:34.724 D/MediaPlaybackService(7157): mIntentReceiver.onReceive com.android.music.musicservicecommand / pause

 

4.视频播放完成后,没有发送继续播放music的广播。

其实视频播放完成后,可以发送一个music继续播放的广播,music接收到此广播后判断之前music是否暂停过,如果是暂停的就继续播放。

 

发布了270 篇原创文章 · 获赞 274 · 访问量 377万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览