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

OSCHINA-MIRROR/ts_ohos-qsvideo-player_hos

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

QSVideoplayer

Данный проект является результатом переноса и разработки на основе открытого проекта qsvideoplayer для HarmonyOS. Проект доступен по адресу: github.

Версия переноса: 2.2.8

Проект

Название проекта: QSVideoplayer

Серия: компоненты для адаптации к HarmonyOS от сторонних разработчиков

Функции:

  • Поддержка настройки соотношения сторон видео.
  • Поддержка двух типов всплывающих окон.
  • Поддержка расширения декодера.
  • Поддержка локального кэширования.
  • Поддержка увеличения скорости воспроизведения, отключения звука и других функций.
  • Интеграция субтитров с помощью одной строки кода.
  • Поддержка жестов и регулировки чёткости.

Всего около 100 строк кода на Java достаточно для создания собственного проигрывателя. Предоставляется готовый проигрыватель DemoQSVideoView.

Состояние переноса проекта: базовый перенос, всплывающие окна требуют решения от команды HarmonyOS, другие функции расширения декодеров требуют поддержки от других компонентов.

Различия в вызовах: в основном нет различий, обратитесь к демо для использования.

Адрес документации исходного проекта: https://github.com/tohodog/QSVideoPlayer

Язык программирования: Java

Установка

Вариант 1: Рекомендуется загрузить исходный код и использовать демонстрационный пример для добавления соответствующих библиотек:

compile project(path: ':qsvideoplayer')

Вариант 2: В файле build.gradle в корневом каталоге проекта добавьте:

mavenCentral()

В модуле build.gralde добавьте:

implementation 'com.gitee.ts_ohos:qsvideoplayer:1.0.0'

Использование

API интерфейса QSVideoView:

void setUp(String url, Object... objects);//установка адреса видео
void play();//воспроизведение/инициализация (автоматическое воспроизведение после завершения)
void prePlay();//инициализация (без автоматического воспроизведения)
void pause();//приостановка
void seekTo(int duration);//регулировка позиции воспроизведения
void setPlayListener(PlayListener playListener);//прослушиватель воспроизведения (параметры см. IVideoPlayer)
void addPlayListener(PlayListener playListener);//добавление прослушивателя воспроизведения
void removePlayListener(PlayListener playListener);//удаление прослушивателя воспроизведения
void setAspectRatio(int aspectRatio);//установление соотношения сторон видео (см. IRenderView)
void setDecodeMedia(Class<? extends BaseMedia> claxx);//установление модуля декодирования
void openCache();//открытие кэша
boolean onBackPressed();//выход из полноэкранного режима при нажатии кнопки «Назад»
boolean isPlaying();//проверка воспроизведения
void enterWindowFullscreen();//переход в полноэкранный режим
void quitWindowFullscreen();//выход из полноэкранного режима
boolean enterWindowFloat(FloatParams floatParams);//всплывающее окно (false — нет прав доступа)
void quitWindowFloat();//выход из всплывающего окна
boolean setMute(boolean isMute);//отключение звука (false — не поддерживается)
boolean setSpeed(float rate);//установка скорости воспроизведения (false — не поддерживается)
void release();//освобождение ресурсов
Bitmap getCurrentFrame();//получение текущего кадра
int getPosition();//позиция воспроизведения
int getDuration();//длительность видео
int getVideoWidth();//ширина видео
int getVideoHeight();//высота видео
int getCurrentMode();//текущий режим проигрывателя (полноэкранный, обычный, всплывающий)
int getCurrentState();//текущее состояние проигрывателя (воспроизведение, пауза, завершение...)

Дополнительные методы использования можно найти в демонстрационном примере этого проекта. Ниже приведены основные способы использования:

DemoQSVideoView qsVideoView = (DemoQSVideoView) findViewById(R.id.xxx);
qsVideoView.setUp(url, "这是一一一一一一一一一个标题");

Настройка нескольких разрешений и параметров IJK:

List<IjkMedia.Option> list = new ArrayList<>();
list.add(new IjkMedia.Option(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1));
demoVideoView.setUp(
                    QSVideo.Build(url).title("这是标清标题").definition("标清").resolution("标清 720P").build(),
                    QSVideo.Build(url).title("这是高清标题").definition("高清").resolution("高清 1080P").option(list).build());

Установка обложки:

qsVideoView.getCoverImageView().setImageResource(R.mipmap.cover);

Добавление прослушивателя:

qsVideoView.setPlayListener(new PlayListener() {
    @Override
    public void onStatus(int status) {//состояние проигрывателя
        if (status == IVideoPlayer.STATE_AUTO_COMPLETE)
            qsVideoView.quitWindowFullscreen();//завершение воспроизведения — выход из полноэкранного режима
    }

    @Override//полноэкранный/обычный/всплывающий...
    public void onMode(int mode) {

    }

    @Override//события воспроизведения: инициализация завершена/буферизация/ошибка/нажатие...
    public void onEvent(int what, Integer... extra) {

    }
});

Переход в полноэкранный режим:

0  горизонтальный экран
1  вертикальный экран
2  автоматический выбор горизонтального или вертикального экрана в зависимости от датчика
3  автоматическое определение горизонтального или вертикального экрана на основе соотношения сторон видео
-1  ничего не делать
qsVideoView.enterFullMode=3;
qsVideoView.play();

Выход из полноэкранного режима по нажатию кнопки «Назад»:

@Override
public void onBackPressed() {
    if (qsVideoView.onBackPressed())
        return;
    super.onBackPressed();
}

В XML-файле ресурсов layout в файле ресурсов добавьте следующий код: Использование плавающего окна

FloatParams floatParams = new FloatParams(); floatParams.x = 0;//координата x центра всплывающего окна floatParams.y = 0;//координата y центра всплывающего окна floatParams.w = 540;//ширина floatParams.h = 270;//высота floatParams.round = 30;//радиус закругления углов всплывающего окна (требуется SDK_INT >= 21) floatParams.fade = 0.8f;//прозрачность (требуется SDK_INT >= 11) floatParams.canMove = true;//можно ли перемещать floatParams.canCross = false;//можно ли пересекать границы экрана floatParams.systemFloat = true;//TRUE — системное всплывающее окно, требуется разрешение; FALSE — всплывающее окно в интерфейсе

if (!qsVideoView.enterWindowFloat(floatParams)) { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())); startAbility(intent, 0); }

Демонстрация эффекта

Версия и итерация

v1.0.0 — первая отправка проекта.

Информация о версии и лицензии

Apache License Version 2.0, January 2004 http://www.apache.org/licenses

https://gitee.com/ts_ohos/qsvideo-player_hos/blob/master/LICENSE

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

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

Введение

Описание недоступно Расширить Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

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

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