后台播放音乐时播放视频,音乐暂停播放的处理方法
2012-07-09 17:55
846 查看
当使用Google自带的图库播放器播放视频时,可以暂停Google自带音乐播放器的播放。
处理方法是通过在启动图库播放器播放视频时,发送music暂停的广播,music接收到此广播后暂停播放音乐。代码处理如下:
1.图库播放器发送music暂停的广播
开始播放视频时,在MovieViewControl.java文件的MovieViewControl类的构造函数中发送了暂停music的广播。
MovieViewControl.java文件位于packages\apps\gallery3d\src\com\cooliris\media目录下。
(1)参数定义:
(2)发送广播
2.Music接收暂停广播
音乐播放器接收播放视频时发送的广播的代码位于MediaPlaybackService.java文件中MediaPlaybackService类的成员变量mIntentReceiver的onReceive函数中。
MediaPlaybackService.java文件位于packages\apps\music\src\com\android\music目录下
代码如下:
(1)参数定义:
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是否暂停过,如果是暂停的就继续播放。
处理方法是通过在启动图库播放器播放视频时,发送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是否暂停过,如果是暂停的就继续播放。
相关文章推荐
- 关于android视频播放显示区域不正常的问题,一些处理方法
- 后台播放音乐时,设置手机铃声,后台音乐不会暂停
- Android 使用MediaPlayer播放视频切换后台暂停再恢复互前台继续播放的bug修改
- Service后台服务控制音乐的播放暂停和停止,播放完自动播放下一曲
- 基于vue2.0实现音乐/视频播放进度条组件的思路及具体实现方法+代码解释
- ios上视频与音乐合成后出现播放兼容问题的解决方法
- FLV视频在IIS6.0下不能播放 处理的方法
- Safari浏览器无法播放视频资源(Java后台SSM架构)的解决方法
- 解决 后台播放音乐时,设置手机铃声,后台音乐不会暂停
- Android 音视频深入 十四 FFmpeg与OpenSL ES 播放mp3音乐,能暂停(附源码
- Android视频播放时停止后台运行的方法
- win8 应用商店。 app下载的音乐和视频软件能打开,不能正常播放 解决方法
- ios上视频与音乐合成后出现播放兼容问题的解决方法
- 详解Android 视频播放时停止后台运行的方法
- Android - 图片的处理,触摸监听事件,音乐播放,SoundPool,VideoView,视频播放,SurfaceView,拍照录像,传感器
- FFMPEG-PHP处理音乐视频文件方法
- iis中flv视频无法播放的处理方法(iis或虚拟主机管理系统)
- 【PPT技巧】让PPT背景音乐仅在播放视频时暂停
- Win7播放音乐、视频或游戏时出现爆音、停顿的解决方法
- 控件播放视频,播放暂停循环等功能,以及画布的scratch缓冲处理视频