私は、オーディオストリーマーを開発中で、中断が発生したときに着信コールやSMSなどの曲の状態を保存するために中断リスナーを宣言しました。ここでオーディオキューで中断を処理する
は私AppDelegateに関連するコード
で、私はこの
AudioSessionInitialize (NULL, NULL, interruptionListenerCallback, self);
AudioSessionSetActive(YES);
を持っているこれは、私が取得すると、割り込みリスナーが
void interruptionListenerCallback (void *inUserData, UInt32 interruptionState) {
// This callback, being outside the implementation block, needs a reference
//to the AudioPlayer object
MyPlayer *player = (MyPlayer *)inUserData;
if (interruptionState == kAudioSessionBeginInterruption) {
if ([player audioStreamer]) {
// if currently playing, pause
[player pausePlayback];
player.interruptedOnPlayback = YES;
}
} else if ((interruptionState == kAudioSessionEndInterruption) && player.interruptedOnPlayback) {
// if the interruption was removed, and the app had been playing, resume playback
[player resumePlayback];
player.interruptedOnPlayback = NO;
}
}
次のようになります割り込みリスナが呼び出された電話、ユーザがコールを拒否した場合再生再開メソッドも呼び出されます。 resumePlaybackメソッドが呼び出される前に、しかし、私は誰がオーディオファイルをストリーミングする際に正しくオーディオ割り込みを処理する方法のアイデアを持っていますAudioQueueEnqueueBuffer
error: tca! error int: 560030580
のコンソールにこのエラーが発生します。
ありがとうございました。
私の場合は、再生AVPlayerを一時停止する前にセッションを停止したためです。 – Drew