Я разрабатываю аудио-стример и объявил прослушиватель прерываний, чтобы сохранить состояние песни, когда происходит прерывание - например, входящий звонок или смс.
Вот соответствующий код
В моем 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
Кто-нибудь имеет представление о том, как правильно обрабатывать прерывания звука при потоковой передаче аудиофайлов.
Спасибо.