我开发了一个应用程序,因为它听起来不太好,如果两个声音叠加,我想在下一个播放时停止声音。我试着这样做
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仍然会改变。
有人对此有所了解吗?
答案 0 :(得分:0)
您的解决方案不是可扩展,无法有效满足您的需求。
Android设计了一个解决方案来解决您目前面临的问题:AudioFocus
API。
此解决方案具有更高的可扩展性,因为它可以与几乎无限数量的MediaPlayer
个对象一起使用,并且可以在所有应用程序中使用。