Мне кажется, что вы устанавливаете inUserData как ваш appDelegate вместо вашего плеера.

рабатываю аудио-стример и объявил прослушиватель прерываний, чтобы сохранить состояние песни, когда происходит прерывание - например, входящий вызов или смс.

Вот соответствующий код

В моем 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

ошибка:TCA! ошибка int:560030580

Кто-нибудь имеет представление о том, как правильно обрабатывать прерывания звука при потоковой передаче аудиофайлов.

Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос