2009-06-17 6 views
3

私は簡単な質問があります:私はNSDataオブジェクトにmp3ファイルをロードして、私はゲームでAVAudioPlayerを使って再生しています。 1秒おきに、フレームレートが下がり、画面上に吃音が見えます。それは大きな減速ではありませんが、明らかに目立ち、ゲームプレイに混乱します。 AVAudioPlayerを使って音楽トラックを再生しても、スピードが低下することはありません。AVAudioPlayer - Framerateにドロップ

これを防ぐにはどうすればよいですか?

ありがとうございます。

フロリアン

答えて

7

は、ここソリューションです。オーディオカテゴリをkAudioSessionCategory_SoloAmbientSoundに設定するとこれが修正されますが、iPodの再生は許可されません。バックグラウンドミュージックが有効か無効かに応じて、オーディオセッションのカテゴリを設定して、iPodの同時再生を許可します。

0

mp3は、エンコードされた/圧縮されたオーディオ形式です。サンプリングレートを下げる(128kb/sではなく、64kb/sを試す)か、リニアpcmなどの非エンコード形式に切り替えてみてください。短所は、前者の場合は音質が低く、後者の場合はファイルサイズが高いことです。しかし、これはあなたのアプリの全体的なパフォーマンスを改善するのに役立ちます。何とかMP3ハードウェアアクセラレーションを無効にします(同時に再生するiPodの音楽を可能にするために)

kAudioSessionCategory_AmbientSoundにオーディオセッションのカテゴリを設定:今後の参考のため