Android控制后台音乐播放器暂停,播放
Android控制后台音乐播放器暂停,播放
本文给大家分享的是在Android中暂停背景音乐的方法的示例,以及度娘上其他网友的实现方法,感觉非常不错,这里全部推荐给大家,有需要的小伙伴可以参考下。
1.一般情况,发送系统广播:
Intent i = new Intent(“com.android.music.musicservicecommand”);
i.putExtra(“command”, “pause”);
context.sendBroadcast(i);
其实这种方式很不靠谱,为什么?因为其他的播放器不一定注册监听了那个广播,所以大多数情况是不起作用的。
2.通过触发媒体的按钮来操作播放器状态:KeyEvent.KEYCODE_MEDIA_PAUSE
public static void sendMediaButton(Context context, int keyCode) {
AudioManager audioManager= (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
//先判断后台是否再播放音乐
if (audioManager.isMusicActive()){
KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
Intent intent = new Intent(Intent.ACTION_MEDIA_BUTTON);
intent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent);
context.sendOrderedBroadcast(intent,null);
keyEvent = new KeyEvent(KeyEvent.ACTION_UP, keyCode); intent = new Intent(Intent.ACTION_MEDIA_BUTTON); intent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent); context.sendOrderedBroadcast(intent,null); }
}
3. 通过AudioManager获取音频焦点AudioFocus,来竞争使用audio做停止播放或者降低声音的处理
AudioManager am = (AudioManager) mAppContext.getSystemService(Context.AUDIO_SERVICE);
am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
AudioManager.AUDIOFOCUS_GAIN:永久获取媒体焦点(播放音乐) 估计音乐播放器使用了此方法,在播放视频时调用,不起作用
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT 暂时获取焦点 适用于短暂的音频
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK Duck我们应用跟其他应用共用焦点 我们播放的时候其他音频会降低音量
后台播放音乐时,项目中播放视频,1方法不起作用,2方法有效 3 暂时获取焦点时,播放视频,音乐停止,退出播放界面,音乐自动播放
更多相关文章
- android EditText控件自动获取焦点弹出键盘解决方法
- Unity3d调用android中的方法
- Android获取当前已连接的wifi信号强度的方法
- 五.在Android中实现线程的方法
- Android:音乐特效控制
- Android常见Exception解决方法
- 关于Android studio 使用fastjson报错的解决方法
- Android禁止EditText自动弹出软键盘的方法
- Android取消EditText自动默认获取焦点行为