問題は解決しました。
この問題を回避するために、録音コードを書き直しました。私はAudioQueuesを使用しました。基本的にバックエンドコードはSpeakHereアプリケーションと同じで、マイナーチェンジもあります。
-(void)resume
{
AudioQueueStart(queueObject, NULL);
}
-(void)pause
{
AudioQueuePause(queueObject);
}
AudioRecorderクラスの場合、さらに2つのAPIが提供されます。基本的な目的は、記録方法で行われる記録設定を避けることです。
割り込みコールバックを設定し、この一時停止と再開メソッドをコールバックで適切に使用します。また、アプリケーションが必要とするかどうかに基づいて、オーディオセッションをアクティブに設定するよう注意してください。
これは誰かを助けてくれることを願っています。
EDIT:
オーディオ割り込みリスナーコールバック:音声の途切れのリスニング
void interruptionListenerCallback (void *inUserData, UInt32 interruptionState)
{
if (interruptionState == kAudioSessionBeginInterruption)
{
[self.audioRecorder pause];
}
else if (interruptionState == kAudioSessionEndInterruption)
{
// if the interruption was removed, and the app had been recording, resume recording
[self.audioRecorder resume];
}
}
:
AudioSessionInitialize(NULL, NULL, interruptionListenerCallback, self);
あなたが/停止/一時停止の記録を開始するために使用しているコードを投稿してください。 AVAudioRecorderオブジェクトが毎回リリースされ、新しいインスタンスをインスタンス化していますか?これは、別のファイルを使用して録音を開始するたびに理由を説明します。 –
Fyi、私はEnd Intが正常に動作していないことを示す小さなサンプルアプリケーションを作成し、この問題についてAppleに電話をかけました。 2ヶ月以上も彼らと一緒にいて、何も聞いていません。 – ort11