Простейший видео плеер для Android

Иногда в мобильное приложение нужно добавить возможность воспроизведения видеозаписей.

Совсем необязательно чтобы это была программа видеоплеер. Видеозаписи могут, например, играть роль справочных материалов или просто служить для визуального оформления.

Но, в любом случае необходимо каким-то образом решить задачу воспроизведения видео в приложении.

Здесь разработчику на помощь приходит стандартный виджет VideoView.

VideoView представляет собой простой, но в тоже время функциональный проигрыватель для видеофайлов. Список поддерживаемых форматов определяется версией Android, так как VideoView использует системные кодеки. Для получения точной информации лучше обратиться к официальной документации.

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

Поддерживается воспроизведение как локальных файлов, например, хранящихся на SD карте, так и потоковое воспроизведение по сети. Однако последнее возможно только при наличии прямой ссылки на файл.

Установка файла для воспроизведения

Прежде чем воспроизвести видеозапись необходимо указать расположение соответствующего файла.

Сделать это можно при помощи одного из двух методов класса VieoView:

  • setVideoPath
    Принимает в качестве параметра полный путь к файлу на SD карте;
  • setVideoURI
    Принимает в качестве параметра URI файла в сети или ресурсах приложения (папка res/raw).

Пример указания видеофайла с SD карты

videoView.setVideoPath("/storage/sdcard0/video.mp4");

Пример указания видеофайла для потокового воспроизведения:

String videoSource ="http://example.com/video.mp4";
videoView.setVideoURI(Uri.parse(videoSource));

Пример указания видеофайла для воспроизведения из ресурсов приложения:

videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() +"/"+R.raw.video));

Для работы с SD картой или потоковым видео необходимо указывать в манифесте приложения соответствующие права.

Для работы с SD картой:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Для работ с Интернет:

<uses-permission android:name="android.permission.INTERNET" />

Воспроизведение видео

Для управления воспроизведением у VideoView имеется три метода, назначение которых в принципе понятно из названия.

  • start
    Воспроизведение видео;
  • pause
    Приостановка воспроизведения;
  • stopPlayback
    Полная остановка воспроизведения со сбросом информации о видеофайле.

Перед приостановкой воспроизведения необходимо проверить, возможна ли она в настоящий момент при помощи метода canPause как показано ниже.

if(video.canPause()){
    video.pause();
}

Остальные методы могут вызываться без дополнительных проверок.

Запуск воспроизведения:

video.start();

Остановка воспроизведения:

videoView.pause();

Если метод start вызван до указания видеофайла для воспроизведения, то он просто не отработает без выдачи каких-либо ошибок.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *