2011-09-26 1 views
2

私はAudioQueueベースのアプリケーションをほぼ完璧に動作させています。しかし、私は問題に苦しんでいます。私がAudioQueueAllocateBufferを呼び出すと、特に512のバッファサイズが要求されます(データのFFTを実行しているので)。しかし、コールバックが発生すると、私は時々、512より小さいバッファサイズを取得することがわかります。AudioQueue異なるバッファサイズを取得して返す

これは怒っています。私の唯一の解決策は、これらの問題をスムーズにするために着信データの内部バッファリングのいくつかの並べ替えを設定するには?割り当てバッファに値を指定すると、iPhoneが私に別のサンプル数を返すのはなぜですか?

私が怒っているので、どんな助力も大歓迎です。

乾杯!

オスカー

答えて

2

あなたのソリューションを使用すると、必要なデータの量をバッファリングするまで、着信オーディオデータの独自の内部バッファリングを設定することです。

割り当てるバッファサイズは、最小ではなく、そのバッファを満たすことができる最大データ量を示します。 Audio Queue APIは他のiOSオーディオAPIをベースにしており、その基礎API(他のアプリケーションからリクエストされたオーディオセッションやサンプルレート、バックグラウンド状態など)の数に応じて動作が変更される可能性があります。 OSバージョン、異なるデバイスモデル上の異なるハードウェアなど)。最低レベルのパブリックオーディオAPI(RemoteIO)でも、それに応じて返されるバッファサイズが変更されます。

+0

Hmph、アップルのプラットフォームは私がこれまでに遭遇した唯一のものですか? – Goz

+0

一部の開発者は、iOSプラットフォームが、オーディオ待ち時間と電源管理に関して他の一般的なモバイルプラットフォームよりも優れていると報告しています。おそらくこれは、もう1つのOSレイヤーを追加するのではなく、オーディオバッファ管理の一部をアプリに公開することに関連しているのでしょうか? – hotpaw2

+0

あなたは正しいかもしれませんが、金属に直接書いたときには、内部バッファの慈悲であなたがいましたが、少なくともあなたは常に2の威力だったデータを取り出しました... – Goz

関連する問題