AudioQueueStart fail -12985 - PullRequest
       30

AudioQueueStart fail -12985

9 голосов
/ 03 декабря 2010

Я сделал потоковый музыкальный проигрыватель, и он отлично работает на переднем плане. Но на фоне iOS4 он не воспроизводит следующую песню автоматически. (дистанционное управление работает) Причина: AudioQueueStart return -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 fail.

Следует проверить, что AudioSession активен первым. В моем случае я ранее установил сессию как неактивную между сменами песен перед началом новой песни: AudioSessionSetActive(false);

Как только я удалил этот AudioQueueStart, он отлично работает с фоном.

Ответы [ 5 ]

3 голосов
/ 10 декабря 2012

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

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

2 голосов
/ 03 июня 2011

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

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

1 голос
/ 14 сентября 2012

См. this .

Возможно, вам необходимо указать следующее:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

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

0 голосов
/ 29 декабря 2013

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

0 голосов
/ 28 сентября 2013

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

...