1

4つのToggleButtonがあり、それぞれが状態ごとに異なるサウンドを再生しているビューがあります。したがって、合計で8つのMediaPlayerインスタンスがあります。ユーザーがトグルボタンを1つ選択すると、トグルボタンの値に応じてサウンドが再生されます。これが1つのToggleButtonのコードです。

MediaPlayer pos = MediaPlayer.create(Set.this, R.raw.pos)
MediaPlayer neg = MediaPlayer.create(Set.this, R.raw.neg);

private void onPlayer1Clicked() {
    if (((ToggleButton)Player1).isChecked())
     positive();
   else
     negative();
}

private void positive() {
    pos.start();
}

private void negative() {
    neg.start();
}

私が立ち往生しているのは、MediaPlayerが停止する前に別のToggleButtonが押されたときです。MediaPlayerは、最初の曲が終了するまで両方の曲を再生します。ToggleButtonが押されているときにMediaPlayerを停止することはできますが、一度にStop()に7曲かかるため、ボタンごとにMediaPlayerを入力する必要はありません。

簡単なコマンドですべてのMediaPlayerインスタンスを停止する方法を知っている人はいますか?

4

2 に答える 2

1

SoundPoolを使用します。この目的により適しています。詳細については、このリンクを確認してください。

于 2012-09-27T09:33:37.640 に答える
0

すべてMediaPlayersCollectionに入れます。

その後、コレクションを繰り返し処理して停止することができます。

于 2012-09-27T09:30:32.520 に答える