Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Потокове відео в додатках для Android

by
Difficulty:IntermediateLength:LongLanguages:

Ukrainian (українська мова) translation by Andy Yur (you can also view the original English article)

Платформа Android надає бібліотеки, які ви можете використовувати для потокової передачі медіафайлів, таких як вилучені відеоролики, і для відтворення в ваших додатках. У цьому навчальному посібнику ми будемо передавати відеофайл, відображаючи його за допомогою компонента VideoView разом з об'єктом MediaController, щоб дозволити користувачеві управляти відтворенням.

Ми також коротко розглянемо процес подання відео з використанням класу MediaPlayer. Якщо ви закінчили серію зі створення музичного програвача для Android, ви можете використовувати те, що дізналися в цьому уроці для подальшого його поліпшення.  Постарайтеся завершити цей урок, якщо вже розробили хоча б кілька додатків для Android.

1. Створіть новий додаток

Крок 1

Ви можете використовувати код з цього уроку для поліпшення додатку, над яким ви працюєте або створити новий додаток в Eclipse або Android Studio. Створіть новий проект Android, назвіть його за своїм вибором, налаштуйте деталі, задайте йому початковий основний клас Activity і макет.

Крок 2

Спочатку зберемо декларацію проекту для потокового мультимедіа. Відкрийте файл маніфесту свого проекту та переключитесь на редагування XML у вашому середовищі IDE. Для потокової передачі мультимедіа вам потрібен доступ в Інтернет, тому додайте в елемент manifest наступний дозвіл:

2. Додавання VideoView

Крок 1

Платформа Android надає клас VideoView, в якому ви можете відтворювати відеофайли. Давайте додамо один до основного файлу макета:

При необхідності змініть батьківський макет, щоб він відповідав вашому додатку. Даємо примірнику VideoView атрибут id, щоб ми могли звернутися до нього пізніше. Можливо, вам доведеться налаштувати інші властивості макета для власної розробки.

Крок 2

Тепер давайте повернемо посилання на екземпляр VideoView в коді. Відкрийте основний Activity клас додатки і додайте наступні додаткові ресурси:

Ваш клас Activity вже повинен містити метод onCreate, в якому встановлено подання вмісту:

Після рядка setContentView давайте отримаємо посилання на VideoView наступним чином, використовуючи id, який ми встановили в XML-макеті:

3. Передача потокового відеофайлу

Крок 1

Тепер ми можемо передати відеофайл в додаток. Підготуйте URI для кінцевої точки наступним чином:

Звичайно, вам потрібно буде використовувати віддалену адресу для відеофайлу, який ви хочете передати. Прикладом тут є відеофайл загальнодоступного домену, розміщений в Internet Archive. Ми аналізуємо адресний рядок як URI, щоб могли передати її об'єкту VideoView:

Тепер ви можете просто почати відтворення:

Операційна система Android підтримує ряд форматів відео і мультимедіа, при цьому кожен пристрій часто підтримує додаткові формати понад те.

Як видно з Developer Guide, формати відеофайлів, які підтримуються включають в себе 3GP, MP4, WEBM і MKV, в залежності від формату і рівня платформи, встановлених користувачем.

Формати аудіофайлів, які ви можете очікувати, включають вбудовану підтримку MP3, MID, OGG і WAV. Ви можете транслювати медіафайли на Android через RTSP, HTTP і HTTPS (з Android 3.1).

4. Додайте управління відтворенням

Крок 1

Ми реалізували відтворення відео, але користувач звик його контролювати. І платформа Android надає ресурси для цього, використовуючи звичну взаємодію через клас MediaController.

У методі onCreate класу Activity перед рядком, в якій ви викликаєте start в VideoView, створіть екземпляр класу:

Потім встановіть його для використання примірника VideoView як прив'язку:

Нарешті, встановіть його в якості медіа-контролера для об'єкта VideoView:

Якщо зараз запустити додаток, користувач матиме можливість управляти відтворенням потокового відео, включаючи кнопки швидкого перемотування вперед і назад, кнопку відтворення / паузи і панель управління пошуком.

Регулятор панелі пошуку супроводжується довжиною медіафайлу справа і поточною позицією відтворення зліва. Крім можливості торкання уздовж панелі пошуку, щоб перейти до позиції в файлі, статус потокової передачі відображається з використанням того ж типу відображення, до якого користувач звик на сайтах і додатках, таких як YouTube.

Як ви побачите під час запуску програми, вид за замовчуванням для елементів управління зникає через кілька секунд, знову з'являючись, коли користувач стосується екрану. Ви можете налаштувати поведінку об'єкта MediaController різними способами. Дивіться series on creating a music player app for Android в якості прикладу, як це зробити. Ви також можете поліпшити звук мультимедіа через пристрої відтворення, щоб налаштувати поведінку вашої програми.

5. Використання MediaPlayer

Крок 1

Перш ніж ми закінчимо, давайте розглянемо альтернативний підхід для потокової передачі відео за допомогою класу MediaPlayer, оскільки ми використовували його в серії series on creating a music player. Ви можете транслювати мультимедіа, включаючи відео, в об'єкт MediaPlayer, використовуючи вид поверхні. Наприклад, ви можете використовувати наступний макет:

Ми будемо посилатися на SurfaceView в реалізації класу Activity.

Крок 2

У своєму класі Activity додайте наступні інтерфейси:

Ваша IDE повинна запропонувати вам додати ці нереалізовані методи:

Ми додамо методи surfaceCreated та onPrepared.

Крок 3

Для реалізації відтворення додайте в клас наступні змінні:

У методі onCreate в Activity ви можете почати створювати ці змінні, використовуючи об'єкт SurfaceView, доданий в макет:

Крок 4

У методі surfaceCreated налаштуйте ресурси відтворення мультимедіа:

Нарешті, в методі onPrepared почніть відтворення:

Тепер ваше відео має відтворюватися в екземплярі MediaPlayer під час запуску програми.

Висновок

У цьому навчальному посібнику ми розкрили основи потокового відео на Android з використанням класів VideoView і MediaPlayer. Ви можете додати багато покращень в код, який ми реалізували, наприклад, шляхом створення відео або підтримки потокового мультимедіа в створеному нами додатку музичного програвача. Ви також можете перевірити ресурси, пов'язані з Android, такі як YouTube Android Player API.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.