对于多媒体的application经常有需要禁止其他多媒体声音的需求。
在网上搜索了相关的方法:
- Intent i = new Intent("com.android.music.musicservicecommand");
- i.putExtra("command", "pause");
- sendBroadcast(i);
有一个根本性解决问题的方法,就是获取声音播放的硬件的焦点(个人理解),从而使其它APP停止播放。因为要发出声音肯定要硬件支持的。这里关键是使用AudioManager类。具体代码如下:
- AudioManager mAudioManager = (AudioManager) context
- .getSystemService(Context.AUDIO_SERVICE);
- if (mAudioManager != null) {
- try {
- mAudioManager.requestAudioFocus(null,
- AudioManager.STREAM_MUSIC,
- AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
- } catch (Exception ex) {
- }
- }
具体说明可以参考:
官方文档