Android を使用してバックグラウンドで曲を継続的に再生してMediaPlayer
います。つまり、継続的にループするということです。
また、クラス25-30
を使用して個別のデュレーションで再生する短いサウンドもあり、メインの曲で何度も再生する必要があります。SoundPool
音の長さは0.5
それぞれ 2 秒で、一部は0.7Mb
サイズが異なりますが、曲の平均サイズは約0.4Mb
.
このアプリを作成したデバイスでこのすべてをスムーズに実行できますが、SoundPool がデュアル コアの電話で再生する際に問題があることがわかりました。だから私は彼らへの支持を撤回した。
最近、2.3.3 を実行している古いデバイスでアプリをテストしましたが、新しい問題は、サウンドが最初の 4 ~ 5 サイクル、つまりメインの曲が 4 ~ 5 回再生されるまでは正しく再生されているように見えることです。音の再生に顕著な遅延がありました。値をログに記録したSoundPool.play()
ところ、遅延が ~(1 ~ 2 秒) であることがわかりました。この問題はローエンドの電話でのみ発生します。なぜこれが起こっているのでしょうか。問題が発生していると思います。私がテストしSoundPool
たデバイスには十分なRAM
ie500Mb
とまともな600Mhz
プロセッサがあったので、これはハードウェアの問題ではありません。
当面の間、デュアルコア電話を除くほとんどのデバイスでアプリが実行されることを期待しているため、これを修正する必要があります。
また、私は MediaPlayer を使用してサウンドを再生することはできません。これは、CPU オーバーヘッドを増やしてアプリの遅延を増やしたくないためです。また、事前に再生したいサウンドの数もわかりません。
この問題を修正してラグを減らす方法についての手がかりは大歓迎です。