CoreAudio ブック (ラフ カット) から AudioQueues について学び始めたところです。基本的にAppleチュートリアルの例と同じです。すべてが正常に機能しています。
GUI を使用してアプリにコードを実装しようとすると、問題が発生します。コードを NSObject サブクラスの「init」メソッドに貼り付けてテストしました。キューにコールバックを実行させる唯一の方法は、空の DO...WHILE ループを init の最後に挿入することですが、それによって GUI がフリーズします (明らかに...)!!
どうやら、AudioQueueNewOutput が inCallbackRunLoop および CallbackRunLoopMode 引数に NULL を渡されている限り、AudioQueue は独自の別のスレッドで自動的に実行されるはずです。それは起こっていません。バッファのプライミングから 1.5 秒しか聞こえません。
明らかに、物事がどのように機能するかについて、私が理解していない基本的なことがあります...
カスパー
-(void) start
{
CheckError(
AudioQueueStart(queue, NULL),
"AudioQueueStart failed");
printf("Playing...\n");
do {
} while (0 == 0); //WHY IS THIS MAKING IT PLAY???
}