Apple のデモ プロジェクト aurioTouch2 は、録音モードでのオーディオ割り込みの処理に関して、iOS-6 と同じ問題を示しています。
シナリオは非常に具体的です。音声録音モードの場合、電話をかけ、応答します (電話を拒否してもバグは発生しません)。次に、電話を切った後、アプリはフォーカスに戻り、記録の続行に失敗します。
エラー メッセージは次のとおりです。
aurioTouch2 プロジェクトは iOS-5 のアップデートでしたが、iOS-6 では機能しません。デバイスは「電話」であるため、私のアプリにとってはかなり重大なバグのようです。
私は運なしであらゆる賢明なバリエーションを試しました。誰でも同じ問題に遭遇しますか? どうもありがとう。
編集:これは私のためにそれを修正したコードです。修正はコメントに記載されています。正確にはエレガントではありませんが、この時点では何でも受け入れます。
このメソッドは、アプリがアクティブな状態に戻った後、ある時点で呼び出されます。割り込み終了トリガーにフラグを設定させ、後で物事が再び生きているときにフラグをチェックしてから、ここでこのメソッドを呼び出します。
-(void) handleEndInterruption {
// Reset audio session
UInt32 category = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty ( kAudioSessionProperty_AudioCategory, sizeof (category), &category );
// Reactivate the current audio session
AudioSessionSetActive(YES);
// Do this, and fail with: AUIOClient_StartIO failed (2003329396)
[self createAUProcessingGraph];
[self initializeAndStartProcessingGraph];
// Do it a second time and it works
AudioSessionSetActive(NO);
AudioSessionSetActive(YES);
[self createAUProcessingGraph];
[self initializeAndStartProcessingGraph];
// Restore open al context
alcMakeContextCurrent([AudioDispatcher sharedInstance].audioContext);
// 'unpause' my context
alcProcessContext([AudioDispatcher sharedInstance].audioContext);
}