0

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

按钮1:

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

按钮2:

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

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

然后我用 setDataSource 尝试了它,但我仍然必须创建 MediaPlayer 的新对象,所以 ID 仍然改变。

有人对此有任何想法吗?

4

1 回答 1

0

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

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

该解决方案更具可扩展性,因为它可以处理几乎无限数量的MediaPlayer对象,并且可以在您的所有应用程序中工作。

于 2013-04-06T02:19:18.043 回答