Продолжить воспроизведение звука с html5-плеера в фоновом режиме iOS - PullRequest
8 голосов
/ 09 января 2012

Мы создали наше музыкально-ориентированное приложение на html5 и javascript с приложением Sencha touch. Для распространения мы завернули его в xcode с помощью UIwebView. Все работает нормально, кроме одной вещи, которая не работает: воспроизведение звука в многозадачном режиме.

Я знаю общую идею: добавьте UIBackgroundModes в info.plist.

Готово. Теперь мы можем воспроизводить звук даже в фоновом режиме.

Пока мы не дошли до конца песни. Чтобы запустить следующую песню, нам нужно снова вывести приложение на передний план, или мы можем нажать кнопку воспроизведения или «следующую песню» на аудиоконтроллере iPhone.

После некоторых исследований я нашел многообещающий обходной путь: « Ввод фона на iOS4 для воспроизведения звука », где обходной путь заключается в редактировании AVAudioSessionCategoryPlayback и работе с UIBackgroundTaskIdentifier. Проблема для меня (как и в любом другом исправлении, которое я обнаружил) заключается в том, что эти решения всегда предполагают, что звук воспроизводится либо с помощью AVaudioPlayer, либо MPMusicPlayerController. Но в моем случае я не пользуюсь ни нашим, наше аудио воспроизводится нашим html5-плеером, завернутым в UIwebView.

У кого-нибудь есть советы о том, как продолжить воспроизведение звука в многозадачном режиме iOS, когда аудиопроигрыватель является проигрывателем html5 / javascript?

Ответы [ 3 ]

4 голосов
/ 25 января 2012

Мое приложение воспроизводит звук через тег <audio> в формате html, размещенном в UIWebView, и поддерживает фоновое воспроизведение.

Как вы предполагаете, вам нужно иметь заданный в вашем списке фоновый режим «Приложение воспроизводит аудио».

Попробуйте добавить это в ваш applicationDidFinishLaunching: обработчик:

NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];
1 голос
/ 03 февраля 2012

Спасибо, ребята, но в итоге я просто держал приложение в цикле в фоновом режиме.Этого было достаточно, чтобы соединить время при подключении к следующей песне в плейлисте.Код, который я использовал, похож на этот: iPhone - фон для опроса событий

0 голосов
/ 26 января 2012

Вы можете попробовать this , добавив функцию для события onend.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...