0

アプリを開発しているのですが、音が良くないので、2つの音が重なった場合、次の音が鳴っているときに音を止めるようにしたいです。そんな感じでやってみた

ボタン 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 に答える