Я занимаюсь разработкой проекта, в котором есть потоковое аудио и воспроизведение аудио из файла. Для потокового аудио я использую AudioStreamer и для воспроизведения из файла я использую avaudioplayer.
И потоковая передача, и воспроизведение отлично работают, если приложение не прерывается телефонным звонком или смс. Но когда звонок / смс приходит после отклонения вызова, когда я пытаюсь возобновить потоковую передачу, я получаю сообщение об ошибке «Ошибка запуска аудио-очереди». Это происходит только тогда, когда я использовал avaudioplayer хотя бы один раз и после этого использовал потоковую передачу. Когда объект avaudioplayer не создан, в этом сценарии не возникает проблем с возобновлением потоковой передачи после прекращения вызова. Я думаю, что что-то не так с audioqueue.
Помощь очень ценится.
Обновление:
Код, который я сейчас использую, приведен ниже
void interruptionListenerCallback (void *inUserData, UInt32 interruptionState) {
// This callback, being outside the implementation block, needs a reference
//to the AudioPlayer object
AudioStreamer *player = (AudioStreamer *)[streamerArray objectAtIndex:0];
if (interruptionState == kAudioSessionBeginInterruption) {
NSLog(@"kAudioSessionBeginInterruption 1");
[player pause];
interruptedOnPlayback = YES;
} else if (interruptionState == kAudioSessionEndInterruption) {
NSLog(@"kAudioSessionEndInterruption 2");
AudioSessionSetActive( true );
[player start];
interruptedOnPlayback = NO;
}
}
как вы могли заметить, я использую AudioSessionSetActive (true), он работает нормально, пока объект avaudioplayer не создан. Проблема возникает только тогда, когда я использую стример после создания объекта Avaudioplayer и если приложение прерывается телефонным звонком
или смс я получаю сообщение об ошибке Не удалось запустить аудио-очередь?!