Воспроизведение видео, когда активность скрыта - PullRequest
5 голосов
/ 28 июня 2011

Пример этого наиболее легко понять, если подумать о «Пандоре для Android».

В моей деятельности VideoView воспроизводит лекции из класса. Я хотел бы иметь возможность без перерыва переключаться из этого занятия в другое (в моем приложении или в другое приложение (домашний экран, какое-то другое приложение)).

Используя пример Pandora, я мог перейти к представлению «переключение радиостанций» во время воспроизведения музыки и перейти на домашний экран и продолжить плавную навигацию по телефону.

Это возможно только для видео или аудио? Могу ли я просто воспроизвести аудио из видеофайла, а затем легко переключиться обратно?

1 Ответ

4 голосов
/ 29 июня 2011

Общий способ, которым это обрабатывается (и как Pandora обрабатывает это), - это воспроизведение музыки из службы в фоновом потоке. VideoView нельзя использовать в этом случае, так как это View и оно связано с действием.

Я бы подошел к этому, начав с кода Android VideoView и разделив его на две части: одну часть для обработки пользовательского интерфейса, а другую - для воспроизведения видео.

Запустите MediaPlayer в фоновом сервисе, и когда ваша видео активность будет отображаться, вызовите сервис MediaPlayer.setDisplay () с вашей поверхностью просмотра видео и вызовите MediaPlayer.setDisplay () со значением NULL, когда ваш просмотр видео скрыт. 1007 *

Очевидно, что это намного сложнее, чем просто использовать VideoView напрямую, и требует запуска службы и ее координации с пользовательским интерфейсом. Вы также можете избежать запуска MediaPlayer в фоновом потоке, а не в службе.

...