Иногда в мобильное приложение нужно добавить возможность воспроизведения видеозаписей.
Совсем необязательно чтобы это была программа видеоплеер. Видеозаписи могут, например, играть роль справочных материалов или просто служить для визуального оформления.
Но, в любом случае необходимо каким-то образом решить задачу воспроизведения видео в приложении.
Здесь разработчику на помощь приходит стандартный виджет VideoView.
VideoView представляет собой простой, но в тоже время функциональный проигрыватель для видеофайлов. Список поддерживаемых форматов определяется версией Android, так как VideoView использует системные кодеки. Для получения точной информации лучше обратиться к официальной документации.
Поддерживается воспроизведение как локальных файлов, например, хранящихся на SD карте, так и потоковое воспроизведение по сети. Однако последнее возможно только при наличии прямой ссылки на файл.
Установка файла для воспроизведения
Прежде чем воспроизвести видеозапись необходимо указать расположение соответствующего файла.
Сделать это можно при помощи одного из двух методов класса VieoView:
- setVideoPath
Принимает в качестве параметра полный путь к файлу на SD карте; - setVideoURI
Принимает в качестве параметра URI файла в сети или ресурсах приложения (папка res/raw).
Пример указания видеофайла с SD карты
1 |
videoView.setVideoPath("/storage/sdcard0/video.mp4"); |
Пример указания видеофайла для потокового воспроизведения:
1 2 |
String videoSource ="https://example.com/video.mp4"; videoView.setVideoURI(Uri.parse(videoSource)); |
Пример указания видеофайла для воспроизведения из ресурсов приложения:
1 |
videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() +"/"+R.raw.video)); |
Для работы с SD картой или потоковым видео необходимо указывать в манифесте приложения соответствующие права.
Для работы с SD картой:
1 |
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
Для работ с Интернет:
1 |
<uses-permission android:name="android.permission.INTERNET" /> |
Воспроизведение видео
Для управления воспроизведением у VideoView имеется три метода, назначение которых в принципе понятно из названия.
- start
Воспроизведение видео; - pause
Приостановка воспроизведения; - stopPlayback
Полная остановка воспроизведения со сбросом информации о видеофайле.
Перед приостановкой воспроизведения необходимо проверить, возможна ли она в настоящий момент при помощи метода canPause как показано ниже.
1 2 3 |
if(video.canPause()){ video.pause(); } |
Остальные методы могут вызываться без дополнительных проверок.
Запуск воспроизведения:
1 |
video.start(); |
Остановка воспроизведения:
1 |
videoView.pause(); |
Если метод start вызван до указания видеофайла для воспроизведения, то он просто не отработает без выдачи каких-либо ошибок.
Безусловно, мы рассмотрели далеко не все возможности VideoView, но и этого уже достаточно для использования видеозаписей в приложении. Но, это уже тема не для одной статьи, в которых они будут раскрыты более подробно.
Добавить комментарий