2011-05-12 39 views
1

我希望我的应用在运行时播放音乐,但我不希望音乐与当前正在播放的音乐与其他应用(安卓音乐应用或其他外部音乐应用,如潘多拉,grooveshark或winamp )。
我的问题是:有没有办法确保现在没有别的东西在播放?Android:在我的应用中实施音乐播放器时,我可以确保没有其他媒体正在播放音乐吗?

谢谢!

+0

我认为(但我不肯定的),该系统只有一个MediaPlayer对象停止任何其他的音乐。如果另一个应用程序拥有它,并且尚未调用.release(),那么您将无法为自己获取它。 – FoamyGuy 2011-05-12 23:56:03

+0

好吧,从我的支票中,有一些应用程序会播放彼此重叠的音乐...... – ekatz 2011-05-13 15:07:42

回答

2

随着Android 2.2的,你可以使用AudioManager.requestAudioFocus(),其他音频播放器应该听听这个焦点变更要求,并能根据什么类型的音频您的焦点请求停止其音频/暂停/减小音量。然而,并非所有的音频播放应用程序都不屑于实现这一点。

为了不错,您还应该听取来自其他应用程序的音频焦点更改请求,并相应地暂停您的应用程序音频。

在早期版本的Android调用mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);通常将打

+0

所以答案是,我无法保证我能够阻止音乐在别处播放,对吗? – ekatz 2011-05-16 16:16:10

+0

是的。我自己,我刚刚实施了音频聚焦方法,因为它很容易做到,只是希望最终流行的音乐播放器也能实现它 – 2011-05-19 12:14:58