2011-01-27 12 views
2

私は、CoreAudioの本(荒削り)からAudioQueuesについて学び始めました。 私はAudioQueue再生のサンプルチュートリアルを行いました。これはAppleのチュートリアルの例と基本的に同じです。すべてがうまくいきます。GUIをフリーズせずにAudioQueueを再生する方法は?

私は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??? 
} 

答えて

2

が私のuserdata構造体が中IVARとして宣言されていなかったことが判明がありますヘッダーファイル。ルーキーミス...