9

Я сделал потоковый музыкальный плеер, и он отлично работает на переднем плане. Но в фоновом режиме iOS4 не воспроизводит следующую песню автоматически. (дистанционное управление) Причина: AudioQueueStart return -12985.AudioQueueStart fail -12985

Я уже проверяю аудио сессию. это просто отлично. Я использую AudioQueueStart, когда он начинает играть музыку. Как удалить AudioQueueStart?

- (void)play 
{ 
    [self setupAudioQueueBuffers]; // calcluate the size to use for each audio queue buffer, and calculate the // number of packets to read into each buffer 
    OSStatus status = AudioQueueStart(self.queueObject, NULL); 
} 

Я прочитал ответ в Интернете о AudioQueueStart неудачу предмет.

Прежде всего необходимо проверить, что AudioSession активен. В моем случае, я уже установлен сеанс неактивного между изменениями песней перед началом новой песни: AudioSessionSetActive(false);

После того, как я удалил этот AudioQueueStart работает просто отлично от фона.

+0

Если ваше обновление является фактическим решением, можете ли вы разместить его как ответ на свой вопрос (ради полноты)? – 2012-06-01 11:07:34

ответ

2

Я также столкнулся с такой проблемой неделю назад. Я провел два дня, чтобы найти решение, и я нашел его. Может быть, эта ссылка поможет (это официальный ответ): http://developer.apple.com/library/ios/#qa/qa1668/_index.html

Убедитесь, что вы активируете сеанс из обработчика задачи applicationDidEnterBackground. Теперь мое приложение может воспроизводить звук в фоновом режиме.

1

См. this.

Вы, вероятно, нужно включать в себя следующее:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

К нижней части есть повторение из, как важно, чтобы линия. Поскольку он не упоминается ни в одном из трех основных аудио аудиогидов (AVFoundation, AudioSession или AudioQueue), его можно легко пропустить.

3

По моему опыту, сообщение -12985 происходит потому, что у другого приложения уже есть сеанс аудио, когда вы пытаетесь начать воспроизведение в своем приложении. Параметры: 1) инструктируют пользователя закрыть другое приложение или 2) установить режим смешивания (см. KAudioSessionProperty_OverrideCategoryMixWithOthers).

Недостатком режима микширования является то, что если вы зависите от искусства экрана блокировки или дистанционного управления, они не будут работать с установленным режимом микширования.

0

У меня такая же проблема. I реестр AudioSessionInterruptionListener, приостанавливает звук при телефонном разговоре, возобновляет его после завершения вызова. но получите код ошибки -12985 при возобновлении вызова AudioQueueStart. Мое решение состоит в том, что я пытаюсь вызвать AudioQueueStart после 0.02s. Я не знаю причины.

0

На iOS7 AudioQueueStart возвращал '! Int' ('tni!'), Хотя я уверен, что никто не удивится, обнаружив, что он не задокументирован в документах или заголовках. Однако это была одна и та же проблема, и для меня работало то же исправление (установка активного сеанса аудио в обработчике фоновых задач).