API видеоплеера на андроид

Работа с API MX PLAYER

Возможности:

Вы можете:

Воспроизводить одно или нескольких видео.
Предоставить субтитры
Выбрать декодер и простые параметры, такие как масштабирование видео и т. д.
Получить результаты воспроизведения, в том числе о том, было ли оно завершено или нет, последняя позиция воспроизведения и т. д.

Вы не можете:

Изменить параметры воспроизведения, кроме предусмотренных.
Изменить настройки.
Получить доступ к встроенным функциям MX Player, таким как извлечение миниатюр, поиск видео и т. д.

Описание

Package

com.mxtech.videoplayer.pro - Pro Edition
com.mxtech.videoplayer.ad - Free Edition

Action

android.intent.action.VIEW

Data

Uri указывает на источник медиа

Дополнительно

decode_mode

Тип : byte
Значения :
1 - HW decoder
2 - SW decoder
4 - HW+ Decoder

fast_mode

Тип : boolean
Значение : true для использования быстрого режима SW, когда выбран декодер SW
Быстрый режим устарел. Несмотря на то, что в некоторых случаях это может улучшить скорость декодирования, также есть вероятность ухудшения качества вывода видео. Не рекомендуется к использованию.

video

Тип : boolean
Установить видимость видео. Это дополнение будет проигнорировано, если пользователь сделает свой выбор на Экране воспроизведения > Меню > Дисплей > Видео.

video_list_is_explicit

Тип : boolean
Если установлено значение true, весь список видео будет воспроизводиться независимо от параметра «Вернуться к списку» в меню Настройки > Проигрыватель

video_list

Тип : Parcelable массив (android.net.Uri[])
Значение : Список воспроизведения видео, включая URI, указанный в Data.
Чтобы предотвратить автоматическую загрузку следующего файла, предоставьте массив одной длины, содержащий только «Данные».
Uri, используемый в качестве данных Intent, также должен быть включен в video_list.
Например, для последовательного воспроизведения 1.mp4, 2.mp4, 3.mp4 установите для данных значение 1.mp4 и поместите { 1.mp4, 2.mp4, 3.mp4 } в список видео.
Если URI указывает на файл, он должен быть канонизирован и иметь префикс «file://».
Подробнее File.getCanonicalPath

video_list.name

Тип : String[]
Значение : Пользовательские заголовки видео для каждого в video_list, которые будут отображаться .
Размер массива должен точно соответствовать размеру video_list. Элементы массива могут быть нулевыми. В этом случае будет использоваться имя по умолчанию.
Если video_list.name и title указаны вместе, будет использоваться video_list.name, а title будет проигнорировано.

video_list.size

Тип : long[]
Значение : Размеры каждого видео в video_list.
Размер массива должен точно соответствовать размеру video_list. Элементы массива могут быть равны 0 для локальных медиа.
Предоставление размера может повысить точность поиска субтитров для удаленного/потокового медиа. Не требуется для локальных файлов.

video_list.filename

Тип : String[]
Значение : Имена файлов каждого видео в video_list.
Размер массива должен точно соответствовать размеру video_list. Элементы массива могут быть нулевыми для локальных медиа. Предоставление имени файла может повысить точность поиска субтитров для удаленного/потокового медиа. Не требуется для локальных файлов, или имя файла можно получить из URI видео.

video_list.hash.opensubtitles

Тип : String[]
Значение : MovieHash каждого медиафайла в video_list.
Размер массива должен точно соответствовать размеру video_list. Элементы массива могут быть нулевыми для локальных медиа.
Используется для лучшего поиска субтитров с OpenSubtitles.org. Не требуется для локальных файлов.
Это дополнение должно сопровождаться дополнительными параметрами `video_list.size` и `video_list.filename`.

subs

Тип : Parcelable массив (android.net.Uri[])
Значение : список субтитров, используемых для данного видео Uri (в поле данных)

subs.name

Тип : String[]
Значение : Пользовательские имена субтитров, которые будут отображаться для пользователей.
Массив должен иметь тот же размер, что и `subs`. Элементы массива могут указывать на null вместо действительной строки. В этом случае будет использоваться имя по умолчанию. Даже если это дополнение предоставлено, пользовательское имя не будет использоваться для субтитров, определяющих имя внутри сценария или содержащих несколько дорожек в файле сценария, таких как субтитры SAMI.

subs.filename

Тип : String[]
Значение : Имена файлов каждого субтитра в `subs`.
Размер массива должен точно совпадать с размером `subs`. Элементы массива могут быть нулевыми для локального носителя, или имя файла может быть получено из URI субтитров.
Предоставление имени файла может повысить точность поиска субтитров для удаленного/потокового медиа

subs.enable

Тип : Parcelable массив (android.net.Uri[])
Значение : Отображение субтитров.
В следующих случаях URI субтитров отличается от URI файла, поскольку один файл может содержать несколько дорожек субтитров. Если URI указывает на файл, URI должен иметь схему «файл», например, file:///sdcard/sub.srt. Субтитры SAMI: {file-uri}#{track-name} ex) file:///sdcard/movie1.smi#encc

title

Тип : String
Значение : Текст заголовка

size

Тип : long
Значение : Размер медиафайла в байтах.
Предоставление размера может повысить точность поиска субтитров для удаленного/потокового медиа. Не требуется для локальных файлов.

filename

Тип : String
Значение : Имя файла медиа.
Предоставление имени файла может повысить точность поиска субтитров для удаленного/потокового медиа. Не требуется для локальных файлов, или имя файла можно получить из URI видео.

hash.opensubtitles

Тип : String
Значение : OpenSubtitles.org MovieHash данного медиафайла.
Используется для лучшего поиска субтитров с OpenSubtitles.org. Не требуется для локальных файлов. Это дополнение должно сопровождаться дополнительными параметрами «size» и «filename».

position

Тип : int
Значение : возобновить позицию в миллисекундах, наличие этой дополнительной функции заставляет возобновить данную позицию, не давая пользователю возможности играть с самого начала.

return_result

Тип : boolean
Значение : установите true, чтобы получить результат через вызов Activity.onActivityResult().

headers

Тип : String[]
Значение : Заголовки, которые будут отправлены вместе с запросом сервера на видео и субтитры.
(До версии 1.8.4 это дополнение не будет использоваться для загрузки субтитров.)
Ключ и значение должны появиться по очереди.
Например:

String[] headers = {
"User-Agent", "Mozilla compatible/1.0",
"Authorization", "(Access Token)",
"Extra Key", "(Extra Value)" };
Эта функция имеет ограничения при использовании с HW декодером; 1) Работает только с Android 2.2 и выше. 2) До Android 4.0 заголовок по умолчанию нельзя переопределить. Например, если вы передадите «User-Agent», он не заменит User-Agent по умолчанию на заданное значение, но значение по умолчанию и заданный заголовок будут переданы вместе.

suppress_error_message

Тип : boolean
Значение : Если установлено значение true и возникает ошибка, activity будет воспроизводить следующее видео или закрываться без отображения сообщения об ошибке.

secure_uri

Тип : boolean
Значение : Если установлено значение true, uri видео не будет отображаться в диалоговом окне свойств.

video_zoom

Тип : int
Значение : Переопределите настройку масштабирования видео. Доступные значения: Подгонка к экрану=1, Растянуть=0, Обрезка=3, 100%=2

DAR_horz, DAR_vert

Тип : float
Значение : Переопределите параметры по умолчанию (соотношение сторон дисплея). Обе дополнительные опции должны предоставляться вместе.

sticky

Тип : boolean
Значение : Переопределите настройку фонового воспроизведения.

orientation

Тип : int
Значения :
0 - Альбомная ориентация
8 - Обратная альбомная ориентация
6 - Автоматический поворот (Альбомная ориентация)
1 - Книжная ориентация
9 - Обратная Книжная ориентация
7 - Автоматический поворот (Книжная ориентация)
10 - Автоматическое вращение
-1 - Системное значение по умолчанию
99999 - Соответствие ориентации видео
Переопределние настройки ориентации экрана.

keys.dpad_up_down

Тип : int
Значения :
0 - Увеличение/уменьшение громкости (по умолчанию)
1 - Загрузить следующее / предыдущее видео.
Переопределение действий клавиш DPAD вверх/вниз.

Результат Activity:

com.mxtech.intent.result.VIEW

Код:

Activity.RESULT_OK : Воспроизведение было завершено или остановлено по запросу пользователя.
Activity.RESULT_CANCELED:Пользователь отменен перед началом любого воспроизведения.
RESULT_ERROR (=Activity.RESULT_FIRST_USER): Последнее воспроизведение было завершено с ошибкой.

Data:

Тип :Последний воспроизведенный медиа-URI.

decode_mode

Тип : byte
Значения : Используемый режим декодирования

position

Тип : int
Значения : Последняя позиция воспроизведения в миллисекундах. Эта дополнительная информация не будет существовать, если воспроизведение будет завершено.

duration

Тип : int
Значения : Длительность последнего воспроизведенного видео в миллисекундах. Эта дополнительная информация не будет существовать, если воспроизведение будет завершено.

end_by

Тип : String
Значения : Указывает причину закрытия действия.
Может быть одним из следующих значений:
"user": Пользователь попросил оставить activity.
"playback_completion": Все воспроизведение завершено.
Обратите внимание, что если activity завершено после переключения на фоновое воспроизведение, RESULT_OK будет возвращен в момент завершения действия.

[MIME Type]

Установив правильный тип MIME, вы можете избежать исключения ActivityNotFoundException независимо от прохождения URI.
Даже если тип MIME не указан, Intent может быть доставлен в MX Player в зависимости от расширения файла Intent uri(data). Поддерживаются самые популярные расширения, включая avi, mkv, mp4, 3gp, asf, divx, flv, ts, wmv и так далее.
* ПРЕДОСТЕРЕЖЕНИЕ: для URI http/https результат не будет возвращен, если непосредственно не указать имя класса activity, вызвав Intent.setClassName(). Название класса для бесплатной версии - com.mxtech.videoplayer.ad.ActivityScreen, а для pro-версии - com.mxtech.videoplayer.ActivityScreen

Например:
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri videoUri = Uri.parse("http://host:port/playlist.m3u8");
intent.setDataAndType( videoUri, "application/x-mpegURL" );
intent.setPackage( "com.mxtech.videoplayer.pro" );
startActivity( intent );
Как я могу запустить MX Player с веб-страницы?

<a href="intent:http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8#Intent;package=com.mxtech.videoplayer.ad;S.title=New%20title;end">Launch through Intent scheme.</a>

Больше информации тут и тут

Могу ли я получить образцы кодов?

Полнофункциональные примеры кодов можно загрузить по следующей ссылке: Ссылка

MX PLAYER

Скачать