Главная » Разработка для Android » Подготовка видеоданных к воспроизведению

0

Воспроизведение видеоданных немного сложнее, чем аудио. Чтобы ото- бразить видео, необходимо указать поверхность, на которой оно будет выво- диться. В следующих разделах описываются два способа воспроизведения видеоданных.

Первый предусматривает использование элемента VideoView и инкапсу- лирует создание и размещение поверхности для отображения видео, а также его подготовку внутри Медиапроигрывателя.

Второй позволяет указать собственную поверхность для воспроизведе- ния, управляя исходным экземпляром MediaPlayer напрямую.

Воспроизведение видео с помощью элемента VideoView

Самый простой способ проигрывания видео — использование элемента VideoView. Он содержит поверхность (объект Surface), на которую вы- водится  картинка,  а также инкапсулирует все операции  по управлению ???????????????????.

Как и MediaPlayer, VideoView поддерживает воспроизведение видео из локальных  источников  или из потока.

Данный  элемент скрывает  от разработчика инициализацию Медиапро- игрывателя, предоставляя удобный API. Чтобы задать видео для воспроиз- ведения, вызовите  метод setVideoPath или setVideoUri. В качестве един- ственного параметра они принимают  путь к локальному файлу, путь URI к Источнику данных или адрес удаленного видеопотока:

streamingVideoView.setVideoUri("http://www.mysite.com/videos/ myvideo.3gp"); localVideoView.setVideoPath("/sdcard/test2.3gp");

Завершив инициализацию, вы получаете  возможность управлять вос- произведением с помощью  методов start,  stopPlayback, pause и seekTo. VideoView  также включает  метод setKeepScreenOn для предотвращения отключения подсветки экрана во время проигрывания.

В листинге 11.3 показан простой каркас, содержащий  инициализацию

VideoView и управление  воспроизведением видео.

Листинг 11.3. Воспроизведение видео с помощью элемента VideoView

VideoView videoView = (VideoView)findViewById(R.id.surface); videoView.setKeepScreenOn(true); videoView.setVideoPath("/sdcard/test2.3gp");

if (videoView.canSeekForward())

videoView.seekTo(videoView.getDuration()/2);

videoView.start();

[ . . . выполняем какие-либо действия . . . ]

videoView.stopPlayback();

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии