私はiPhoneのためのゲームを書いています。バックグラウンドミュージックなしでは、30fpsでスムーズに動作します。しかし、音楽を追加すると(AudioQueuesまたはAVAudioPlayerの両方で同様の効果が得られます)、フレームレートは定期的に10秒に1回低下し、30に戻ります。音楽はmp3 @ 128kps、44kHzです。それはパフォーマンスを絶えず低下させますが、特定の瞬間には非常にぎこちないゲームプレイを引き起こします。誰もそのような問題に会ったのですか? mp3のデコード/再生のためのCPU負荷をかける方法はありますか?むしろほとんどの場合30fpsよりも29fpsしか必要とせず、毎秒10回しか必要としません。iPhone mp3再生の問題
4
A
答えて
0
あなたのアプリをプロファイルする必要があります。
私はビットレートに関係なく60fpsを得ています。
1
レンダリングスレッドの優先度を高くすることはできますか?あるいは、それを別の実行ループに入れてください(アニメーションをやっている方法であれば)。
0
あなたのコードを私たちに示した方が良いでしょう。オーディオバッファのオプションをチェックしましたが、必要なものに最適ではないかもしれません。あなたはオーディオユニットに慣れていますか?
1
思考のカップル:
1)これは、別の形式にファイルを変換しようとして作業することが、あなたはまだこの問題を持っているかどうかを確認することがあります。私はCAFファイルを使用することで大きな成功を収めました。単にafconvertを実行するだけです。
afconvert -f caff -d ima4 <your mp3 file>
2)また、スローダウンとトラックの変更の間に接続がありますか?トラックを変更する(またはトラックを再起動する)ときによく似たようなことが起こりました。私はそれが 'ディスク'からファイルを読み込むのにかかる負荷と関係していると思います。
1
これは、おそらくAmbientSound
オーディオセッションカテゴリを使用することによって発生します。this questionを参照してください。 SoloAmbientSound
カテゴリに切り替えると簡単に問題を解決できます。
これは私たちの問題を解決しました。 –