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 暂时获取焦点时,播放视频,音乐停止,退出播放界面,音乐自动播放

发布了1 篇原创文章 · 获赞 1 · 访问量 5752
展开阅读全文

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

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

分享到微信朋友圈

×

扫一扫,手机浏览