アプリの起動時に開くメイン ビュー (または cocos2d のシーン) があります。そこから audioUnit を呼び出して、microphone からの入力オーディオを聞きます。それはうまく機能します(audioUnitのコールバックは常に呼び出され、何かを行います)が、メインスレッドが必要であることがわかります-メインシーンにはUILabel
必要ないものと、メインスレッドにする必要があるその他のものがあります変更される。
main scene
私は最初に行う:
remoteIns=[[remoteIO alloc]init]; //turn on the callback function on class remoteIO .
[remoteIns StartListeningWithFrequency]; // this function takes the main thread
その後、main scene
後でチェックインすると:
NSLog(@"isMainThread%d",[NSThread isMainThread]);
メインスレッドではないことがわかります。したがって、変更できませんUILabels
。
audioUnit 関数 (別のクラス) を開始し、それを別のスレッドに設定し、メイン シーンをメイン スレッドのままにし、正常に動作させる必要がありますaudioUnit
。