0

奇妙な問題に気付きました: 私のアプリは SoundPool を使用してサウンドを再生します。サウンド再生中に戻るキーでアプリを終了すると、次回アプリ起動時にSoundPoolが正常に動作しません(SoundPoolを使用する別のアプリを起動してもサウンドが動作せず、デバイスを再起動する必要があります)サウンドプールを再び機能させるため)。

役立つ解決策を見つけました。 onDestroy() メソッドですべての再生サウンドを停止してから、SoundPool.release() を呼び出す必要があります。

問題は、ユーザーがタスク マネージャーでアプリを強制終了すると、onDestroy が呼び出されず、サウンドを停止/解放できないことです。誰か知っていますか

a) アプリが強制終了されたことを検出する方法 b) 別のメカニズムを使用して、アプリの終了後に SoundPool が機能しないのを防ぐ

Android 2.3.6 を搭載した Samsung Galaxy S Plus でテスト済み

4

1 に答える 1

2

には、 や などのSurfaceViewオーバーライド可能なメソッドがsurfaceCreatedありsurfaceDestroyedます。また、 を呼び出す代わりに、 を呼び出すrelease必要があります。soundPool.stop(streamId)はメソッドstreamIdによって返される整数です。soundPool.play間違ったstreamIdループ サウンドを使用すると停止しません。streamIdループしていない別のサウンドを使用するという同じ問題がありました。

于 2012-06-19T20:48:27.580 に答える