Android让一个媒体播放器阻止另一个

时间:2013-04-06 02:14:47

标签: android media

我开发了一个应用程序,因为它听起来不太好,如果两个声音叠加,我想在下一个播放时停止声音。我试着这样做

Button1的:

 MediaPlayer mediaPlayerW = MediaPlayer.create(getBaseContext(), R.raw.w1);      
              if(mediaPlayerW.isPlaying()){
                 mediaPlayerW.stop();}
                else{
                 mediaPlayerW.start();
                } }  

将Button2:

MediaPlayer mediaPlayerW = MediaPlayer.create(getBaseContext(), R.raw.w2);       
              if(mediaPlayerW.isPlaying()){
                 mediaPlayerW.stop();}
                else{
                 mediaPlayerW.start();
                } }  

现在的问题是,mPlayer总是获得一个新ID,因此不会停止“旧”声音。

然后我用setDataSource尝试了它,但我仍然需要创建MediaPlayer的新对象,因此ID仍然会改变。

有人对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

您的解决方案不是可扩展,无法有效满足您的需求。

Android设计了一个解决方案来解决您目前面临的问题:AudioFocus API。

此解决方案具有更高的可扩展性,因为它可以与几乎无限数量的MediaPlayer个对象一起使用,并且可以在所有应用程序中使用。