9

SoundPoolAndroidのゲームでsfxサウンドを再生するために使用しています。ほとんどの場合、すべてのサウンドを 一時停止せずに一度に停止する必要がある場合を除いて、完全に機能します (ループするように設定されているかどうかは関係ありません)。その音のことを知らずに、音の再生を止める方法がわかりませんStreamID。私が知っていること:

  • soundpool.load(...サウンド...サウンドID)を返す
  • soundpool.play(soundIDはサウンドを再生し、 streamID)を返します
  • soundpool.stop(streamID)が音を止める

私の質問は、streamIDを知らずにサウンドを停止するにはどうすればよいですか? リスト内のすべてのストリーム ID を追跡しようとしましたが、一度に再生される短いストリームが多すぎてうまくいかないことがあります。SoundPoolまた、アクティブなストリーム ID を取得する方法が見つかりません。すべての音を止める方法を知っている人はいますか? どんなヒントでも大歓迎です!ありがとう

4

2 に答える 2

4

autoPause() と autoResume() を使用してサウンドを一時停止および再開することをお勧めします。この関数はサウンドプールの一部です:

http://developer.android.com/reference/android/media/SoundPool.html#autoPause()

于 2014-06-15T06:31:41.253 に答える
2

を使用するのは.release()どうですか?ドキュメントによると:

SoundPool リソースを解放します。SoundPool オブジェクトが使用するすべてのメモリとネイティブ リソースを解放します。SoundPool は使用できなくなり、参照を null に設定する必要があります。

それもすべてを止めると思います。(実際には、私のアプリの 1 つでバグを引き起こしていたので、私はそれを言います)

ただし、後でサウンドを再生したい場合は、再度ロードする必要があると思います

于 2013-12-15T19:22:36.543 に答える