使っている内に,何回も再生 (play()) と停止 (stop(), pause()) を繰り返すと落ちることが分かった.
調査してみると、どうやら play() 実行の度にメモリを消費しているようだ.
また、SoundPool でも同様の症状が起こるらしい (未確認).
解決方法としては,
- play() を1回だけ実行
- 停止時にリソース解放
1. に関しては、
1) スレッドを停止,2) ハンドラを利用,3) スレッドを (短時間スリープさせて) ビジーループ
のいずれかを停止の代替手段として実装すればよいはず.
1) スレッドを停止,2) ハンドラを利用,3) スレッドを (短時間スリープさせて) ビジーループ
のいずれかを停止の代替手段として実装すればよいはず.
0 件のコメント:
コメントを投稿