Как вы можете воспроизводить звук видео YouTube в фоновом режиме на iOS 4?

В Safari на OS4 можно транслировать звук видео YouTube в фоновом режиме:

Чтобы попробовать запустить видео с YouTube, отправьте приложение в фоновом режиме, дважды нажмите кнопку «Домой» и переключитесь на другое приложение. В этот момент звук остановится, но его можно восстановить, приостановить и т. д. в фоновом режиме с помощью пультов дистанционного управления, связанных с Safari, а также при использовании другого приложения.

Я хочу воспроизвести это поведение в своем приложении, но пока не нашел решения этой проблемы. Я использую стандартную технику UIWebView, чтобы запустить видео YouTube, оставаясь в приложении, я установил категорию AVAudioSession на AVAudioSessionCategoryPlayback, а для обязательных фоновых режимов в Info.plist установлено значение «аудио». Я также переопределил canBecomeFirstResponder UIViewController, чтобы он возвращал true.

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

Что-то я пропустил? Как Safari может это сделать?


person user441281    schedule 03.10.2010    source источник


Ответы (1)


Дело в том, что Safari.app, как известно, не использует UIWebView. Помните весь этот беспредел из-за разницы в скорости движка JS между Safari и UIWebView месяц назад? Ну, ИМХО, ваша проблема связана с этой разницей. Я не удивлюсь, что ваш подход не работает, учитывая эту характеристику. Я думаю, что UIWebView ловит фоновые события и отключает себя в целях экономии памяти.

Возможно, вы захотите попробовать приложение на основе AVPlayer, предназначенное для воспроизведения потокового аудиоконтента, вместо UIWebView. Или скрытый MPMoviePlayerController, если вы хотите услышать звук онлайн-фильма.

Надеюсь это поможет!

person Adrian Kosmaczewski    schedule 02.04.2011