На основе IJKPlayer (совместимого с системами MediaPlayer и EXOPlayer2) был создан многофункциональный видеоплеер.
Пожалуйста, внимательно прочитайте следующие инструкции, большинство вопросов можно найти ниже.
Если клонирование происходит слишком медленно, вы можете попробовать загрузить его с адреса кодового облака.
Тип | Функция |
---|---|
Кэширование | Постепенное кэширование во время воспроизведения, используется AndroidVideoCache; ExoPlayer использует SimpleCache. |
Протокол | h263\4\5, Https, concat, rtsp, hls, rtmp, crypto, mpeg и т. д. (поддерживаются форматы IJK). |
Фильтры | Простые фильтры (зернистость, чёрно-белое изображение, цветокоррекция, размытие, размытие по Гауссу и т.д., более 20 видов), анимация (водяные знаки, многослойное воспроизведение и т.д.). |
Кадры | Первый кадр видео, функция кадрирования видео, функция создания GIF из видео. |
Воспроизведение | Список воспроизведения, непрерывное воспроизведение списка, воспроизведение с гравитационным вращением и ручным вращением, скорость сетевого видео. |
Экран | Регулировка соотношения сторон экрана: по умолчанию 16:9, 4:3, заполнение; поворот угла экрана во время воспроизведения (0, 90, 180, 270); зеркальное вращение. |
Ядро | IJKPlayer, EXOPlayer, переключение MediaPlayer, настраиваемое ядро. |
Макет | Полноэкранный и не полноэкранный макет, два макета для переключения, поддержка чистого воспроизведения без каких-либо элементов управления, поддержка субтитров, наследование любого макета. |
Воспроизведение | Одиночное воспроизведение, одновременное воспроизведение нескольких видео, автоматическое воспроизведение при прокрутке списка видео, бесшовное воспроизведение при переключении списка. |
Окно | Маленькое окно, несколько маленьких окон (включая рабочий стол). |
Реклама | Рекламные ролики в начале видео, пропуск рекламных роликов, вставка рекламы в середине. |
Субтитры | Поддержка пользовательских внешних субтитров в режиме exo2. |
Другое | Приостановка перед и после переключения на задний план без затемнения экрана; поддержка регулировки различной чёткости; бесшовные переходы; блокировка/разблокировка полноэкранного щелчка; предварительный просмотр прогресса в маленьком окне (тестирование). |
Настройка | Можно настроить слой рендеринга, слой управления, слой воспроизведения (слой управления), слой кэша. |
Вы можете выбрать один из следующих трёх методов и добавить их в файл build.gradle в модуле.
//Полная версия введения
implementation 'com.shuyu:GSYVideoPlayer:7.1.2'
implementation 'com.shuyu:gsyVideoPlayer-java:7.1.2'
//Нужно ли поддерживать режим ExoPlayer
implementation 'com.shuyu:GSYVideoPlayer-exo2:7.1.2'
//В соответствии с вашими потребностями, so-файл режима IJK
implementation 'com.shuyu:gsyVideoPlayer-armv5:7.1.2'
implementation 'com.shuyu:gsyVideoPlayer-armv7a:7.1.2'
implementation 'com.shuyu:gsyVideoPlayer-arm64:7.1.2'
implementation 'com.shuyu:gsyVideoPlayer-x64:7.1.2'
implementation 'com.shuyu:gsyVideoPlayer-x86:7.1.2'
A, B поддерживают 263/264/265 и другие форматы, но могут возникнуть проблемы со звуком без изображения при использовании формата mpeg. C вводит so-файлы, которые поддерживают формат mpeg и другие дополнительные протоколы, но размер пакета становится больше.
implementation 'com.shuyu:gsyVideoPlayer-java:7.1.2'
//Нужно ли поддерживать режим ExoPlayer
implementation 'com.shuyu:GSYVideoPlayer-exo2:7.1.2'
//Больше поддержки формата IJK (so-файлы)
implementation 'com.shuyu:gsyVideoPlayer-ex_so:7.1.2'
//EXOPlayer ядро, поддерживает больше форматов
PlayerFactory.setPlayManager(Exo2PlayerManager.class);
//Системное ядро
PlayerFactory.setPlayManager(SystemPlayerManager.class);
//IJK ядро, режим по умолчанию
PlayerFactory.setPlayManager(IjkPlayerManager.class);
//Режим кэширования Exo, поддерживает только Exo
CacheFactory.setCacheManager(ExoPlayerCacheManager.class);
//Режим прокси-кэша, поддерживает все режимы, не поддерживает m3u8 и т.д., режим по умолчанию КэчФабрик.сетКэшМенеджер(ПроксиКэшМенеджер.класс);
// переключение режима рендеринга
ГСЮВидеоТип.сэтШоуТайп(ГСЮВидеоТип.СКРИНМАТЧФУЛЛ);
// соотношение сторон по умолчанию
ГСЮВидеоТип.СКРИНТАЙПДЕФАУЛТ = 0;
// 16:9
ГСЮВидеоТип.СКРИНТАЙП16_9 = 1;
// 4:3
ГСЮВидеоТип.СКРИНТАЙП4_3 = 2;
// полноэкранное кадрирование, рекомендуется использовать FrameLayout в качестве родительского макета для отображения нормального CoverImageView
ГСЮВидеоТип.СКРИНТИПФУЛЛ = 4;
// полноэкранное масштабирование, при использовании этого свойства рекомендуется использовать Surface_container в качестве FrameLayout
ГСЮВидеоТип.скринМатчФулл = -4;
/***
* СКРИНТАЙПКЭСТМ — пользовательское соотношение сторон
* @param screenScaleRatio соотношение сторон, например 16: 9
*/
публичный статический метод сэтскринскейлератио(поплавок скринскейлератио)
// переключение режимов рисования
ГСЮВидеоТип.сэтрэндэртайп(ГСЮВидеоТип.СУФРЭЙС);
ГСЮВидеоТип.сэтрэндэртайп(ГСЮВидеоТип.ГЛСФРЭЙС);
ГСЮВидеоТип.сэтрэндэртайп(ГСЮВидеоТип.ТЭКСЧУРЭ);
//ijk отключить журнал
АйджКейПлейерМенеджер.сэтЛогЛевел(АйджКейМедиаПлейер.АЙК_ЛОГ_СИЛЭНТ);
//экспоулер пользовательский медиаисточник
ЭксоСорсМенеджер.сэтЭкспоМедиаСорсИнтерсептЛистенер(новый ЭксоМедиаСорсИнтерсептЛистенер() {
@переопределить
общедоступный медиасорс получаетмедиасорс(строка данныхсорс, логическое значение предварительного просмотра, логическое значение кэшэнэйбл, логическое значение ислопинг, файл кэшдир) {
// можно настроить медиаисточник
вернуть ноль;
}
});
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )