1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hty527-iPlayer

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

iPlayer

1. Функции SDK

  • Поддержка воспроизведения сетевых адресов, прямых трансляций, локальных аудио- и видеоресурсов Assets и Raw.
  • Поддержка настройки функций, таких как ускоренное воспроизведение, масштабирование, отключение звука, зеркальное отображение.
  • Поддержка пользовательских видеодекодеров, контроллеров, компонентов взаимодействия с пользовательским интерфейсом (UI), рендереров видеоизображений.
  • Возможность частичной настройки контроллера по умолчанию.
  • Поддержка гравитационного датчика для поворота экрана по горизонтали и вертикали, а также включения и выключения экрана в зависимости от ориентации.
  • Поддержка одновременного воспроизведения нескольких проигрывателей и запуска полноэкранного воспроизведения из любого места.
  • Поддержка запуска окна в плавающем режиме и полноэкранном режиме из любого положения, поддержка закрепления окна на краю экрана.
  • Демо: переключение между тремя декодерами — MediaPlayer, IjkPlayer и ExoPlayer.
  • Демо: бесшовные переходы между списками или компонентами, полноэкранные переходы между окнами.
  • Демо: имитация работы сервиса Douyin, поддержка кеширования видео и воспроизведения по секундам.
  • Демо: простой интерфейс взаимодействия с субтитрами.
  • Демо: пример «картинка в картинке» для Android 8.0+.

2. [Исторические версии]

3. Интеграция SDK

  • Рекомендуется интегрировать проект после предварительного скачивания apk для ознакомления с желаемыми функциональными модулями. Последующая интеграция может быть выполнена с использованием кода демоверсии.
1. Конфигурация build.gradle в корне проекта
    allprojects {
        repositories {
            maven { url 'https://jitpack.io' }
        }
    }
2. Конфигурация build.gradle модуля
    dependencies {
        //Плеер (без UI взаимодействия)
        implementation 'com.github.hty527.iPlayer:iplayer:2.1.26.1'
        //SDK по умолчанию UI компоненты взаимодействия
        implementation 'com.github.hty527.iPlayer:widget:2.1.26.1'
    }
  • Для получения дополнительной информации о декодерах, кеше и других функциях полного объёма SDK обратитесь к [полному объёму SDK].
3. Добавление следующего кода в XML-файл, где требуется воспроизвести видео, или в подходящее место для создания нового объекта VideoPlayer, либо:
    <com.android.iplayer.widget.VideoPlayer
        android:id="@+id/video_player"
        android:layout_width="match_parent"
        android:layout_height="200dp"/>
4. Подготовка плеера и начало воспроизведения
    mVideoPlayer = (VideoPlayer) findViewById(R.id.video_player);
    mVideoPlayer.getLayoutParams().height= getResources().getDisplayMetrics().widthPixels * 9 /16;//фиксированная высота плеера, или установка высоты: match_parent
    //Использование SDK по умолчанию контроллера + различных компонентов UI взаимодействия
    VideoController controller = VideoPlayer.initController();//инициализация контроллера по умолчанию SDK
    //Привязка компонентов UI взаимодействия к контроллеру (требуется интеграция: implementation 'com.github.hty527.iPlayer:widget:lastversion')
    WidgetFactory.bindDefaultControls(controller);
    controller.setTitle("Тестирование адреса воспроизведения");//название видео (видимое только в горизонтальном положении)
    //Настройка источника воспроизведения
    mVideoPlayer.setDataSource("https://upload.dongfeng-nissan.com.cn/nissan/video/202204/4cfde6f0-bf80-11ec-95c3-214c38efbbc8.mp4");
    //Асинхронный запуск подготовки к воспроизведению
    mVideoPlayer.prepareAsync();
  • Дополнительные сведения о контроллерах и настройках воспроизведения см. в разделе [Общие контроллеры и API воспроизведения].
5. Обработка жизненного цикла
    @Override
    protected void onResume() {
        super.onResume();
        mVideoPlayer.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mVideoPlayer.onPause();
    }

    @Override
    public void onBackPressed() {
        if(mVideoPlayer.isBackPressed()){
            super.onBackPressed();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mVideoPlayer.onDestroy();
    }
6. Общие API, замена декодера, настройка декодера, взаимодействие с UI и воспроизведение в плавающих окнах и т. д. См. раздел [wiki].

4. Решение проблем

    1. Ознакомьтесь с документацией по интеграции [wiki].
    1. Отправьте [issues].
    1. Свяжитесь с автором: 584312311@qq.com.
    1. Адрес [Github].
    1. Структура фреймворка проигрывателя [diagram].

5. Предварительный просмотр некоторых функций SDK и демо

6. Благодарности

  • [IjkPlayer].
  • [ExoPlayer].
  • [AndroidVideoCache].
  • Демонстрационные видео в списке модулей используют API OpenEye. Этот проект предназначен только для изучения и не должен использоваться в коммерческих целях. Любой, кто использует его в коммерческих целях, несёт ответственность за юридические риски!

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Java
Отмена

Обновления (6)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/hty527-iPlayer.git
git@api.gitlife.ru:oschina-mirror/hty527-iPlayer.git
oschina-mirror
hty527-iPlayer
hty527-iPlayer
main