iOS アプリ プロジェクトには、(さまざまなプロパティ、コールバックなどを設定した後) で終わるオーディオ ユニット (入力/出力に使用される) 初期化コードがあります。
OSErr err = AudioUnitInitialize (self.audioUnit);
NSAssert1 (err == noErr, "Error initializing audio unit: %ld", err);
私の問題は、状況によっては、オーディオ ハードウェアを使用できないコンピューター (もちろん iPhone シミュレーター) でこのコードを実行する必要があることです。その後、次のことが起こります。
まず、コンソールに次のメッセージが表示されます (長い行で申し訳ありません。余分な改行がない方がわかりやすいようです)。
2012-05-03 12:41:15.020 TimeKeeper[452:10703] Error loading /System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn: dlopen(/System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn, 262): Symbol not found: ___CFObjCIsCollectable
Referenced from: /System/Library/Frameworks/Security.framework/Versions/A/Security
Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
in /System/Library/Frameworks/Security.framework/Versions/A/Security
2012-05-03 12:41:15.140 TimeKeeper[452:10703] Error loading /System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn: dlopen(/System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn, 262): Symbol not found: ___CFObjCIsCollectable
Referenced from: /System/Library/Frameworks/Security.framework/Versions/A/Security
Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
in /System/Library/Frameworks/Security.framework/Versions/A/Security
2012-05-03 12:41:15.207 TimeKeeper[452:10703] Error '!obj' trying to fetch default input device's sample rate
2012-05-03 12:41:15.209 TimeKeeper[452:10703] Error getting audio input device sample rate: '!obj'
その後、約 2 分ほど経過するAudioUnitInitialize
と、エラー コード0
(例noErr
: ) が返され、コンソールに次のメッセージが表示されます。
2012-05-03 12:43:45.222 TimeKeeper[452:14403] AQMEIO_Base::DoStartIO: timeout
2012-05-03 12:43:45.226 TimeKeeper[452:14403] AQMEDevice(0x7b0de00)::StartIO: error -66681
次に を呼び出すAudioOutputUnitStart
と、関数が戻るまでに約 2 分かかりますが、少なくとも戻りステータスはゼロではありません。
オーディオ ハードウェアが利用できないかどうかを確認できるようにしたいので、AudioUnitInitialize
そもそも呼び出しを避けることができます --- または、少なくとも (アプリの実行中) それほど長く待たずにゼロ以外の戻りステータスを取得できます。時間条件)。