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

OSCHINA-MIRROR/ts_ohos-fenster

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

Fenster

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

Версия для переноса: v.0.0.2

Проект

Название проекта: Fenster видеоплеер

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

Функции:

    1. Простой видеопроигрыватель с функциями паузы и воспроизведения, индикатором прогресса, перемотки вперёд и назад.
    1. Стандартный проигрыватель с функциями паузы, воспроизведения, перемотки, регулировки громкости и яркости.
    1. Масштабирование видео с поддержкой различных размеров.
    1. Разработчики могут расширить функциональность клавиш Next и Pre.

Состояние переноса проекта: основная функциональность перенесена, за исключением жестовой функции.

Отличия в вызовах: есть различия в функции регулировки яркости, см. инструкцию по использованию.

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

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

Установка

Способ 1:

    1. Скачайте har-пакет library.har из папки output проекта fenster/library.
    1. Запустите DevEco Studio и импортируйте скачанный har-пакет в каталог «entry->libs».
    1. В файле build.gradle уровня модуля добавьте зависимость, указав ссылку на jar-пакеты в каталоге libs.
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
   ……
}

Способ 2:

allprojects {
    repositories {
        mavenCentral()
       
    }
}
implementation 'io.openharmony.tpc.thirdlib:fenster:1.0.1'
    1. Щёлкните правой кнопкой мыши на импортированном har-пакете, выберите «Add as Library», выберите нужный модуль и нажмите «OK» для успешной ссылки.

Инструкция по использованию

Fenster — это пользовательский видеопроигрыватель, созданный с использованием SurfaceProvider и Player. Для запуска видео достаточно добавить компоненты в файл layout AbilitySlice, а затем вызвать соответствующий интерфейс компонента для воспроизведения видео.

    1. Использование простого проигрывателя:
    • 1.1 Добавьте view в файл макета AbilitySlice:
<com.malmstein.fenster.view.FensterVideoComponent
ohos:id="$+id:play_video_texture"
ohos:width="match_parent"
ohos:height="match_parent"/>

<com.malmstein.fenster.controller.SimpleMediaFensterPlayerController
ohos:id="$+id:play_video_controller"
ohos:width="match_parent"
ohos:height="match_content"
ohos:align_parent_bottom="true"/>
  • 1.2 В коде Java установите ресурсы для воспроизведения (поддерживаются локальные и удалённые потоки) и начните воспроизведение:
private void bindViews() {
  textureView = (FensterVideoView) findComponentById(ResourceTable.Id_play_video_texture);
  fullScreenMediaPlayerController = (SimpleMediaFensterPlayerController) findComponentById(
          ResourceTable.Id_play_video_controller);
}
private void initVideo() {
  fullScreenMediaPlayerController.setVisibilityListener(this);//用于控制控制器的显示与隐藏
  textureView.setMediaController(fullScreenMediaPlayerController);
  textureView.setOnPlayStateListener(fullScreenMediaPlayerController);
}
@Override
public void onPostStart() {
  String localFile = null;
if (mIntent != null) {
    localFile = mIntent.getStringParam(KEY_LOCAL_FILE);
  }
if (localFile != null) {
    ohos.global.resource.ResourceManager resManager = getAbilityPackageContext().getResourceManager();
    RawFileEntry rawFileEntry = resManager.getRawFileEntry("resources/rawfile/big_buck_bunny.mp4");
    RawFileDescriptor assetFileDescriptor;
try {
      assetFileDescriptor = rawFileEntry.openRawFileDescriptor();
      textureView.setVideo(assetFileDescriptor);//设置本地视频资源
    } catch (IOException e) {
      e.printStackTrace();
    }
  } else {
    textureView.setVideo("https://mos-vod-drcn.dbankcdn.cn/P_VT/video_injection/A91343E9D/v3/9AB0A7921049102362779584128/MP4Mix_H.264_1920x1080_6000_HEAAC1_PVC_NoCut.mp4");//设置网络URI
  }
  textureView.start();
}
    1. Использование стандартного проигрывателя. Стандартный проигрыватель использует MediaFensterPlayerController и FensterVideoView вместе, что добавляет функции регулировки яркости и громкости к простому проигрывателю. Основной метод использования такой же, как и у простого проигрывателя, но регулировка яркости требует дополнительного вызова интерфейса: fullScreenMediaPlayerController.bindAbilitySliceToBrightnessBar(this) связывает AbilitySlice с MediaFensterPlayerController в качестве контекста.
    1. Использование масштабирования видео:
  • 3.1 Добавить атрибут конфигурации: xmlns:app="http://schemas.huawei.com/res/tools"

  • 3.2 Настроить app:scaleType="crop":

<DependentLayout
ohos:height="200vp"
ohos:width="300vp">
<com.malmstein.fenster.view.FensterVideoComponent
ohos:id="$+id:play_video_texture"
ohos:width="match_parent"
ohos:height="match_parent"
app:scaleType="crop"/>

<com.malmstein.fenster.controller.SimpleMediaFensterPlayerController
ohos:id="$+id:play_video_controller"
ohos:width="match_parent"
ohos:height="match_content"
ohos:align_parent_bottom="true"
/>
</DependentLayout>
    1. Жесты не поддерживаются.
    1. Кнопки pre и next должны быть расширены пользователем, исходный автор не предоставил поддержку для этой функции.

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

  • Простой проигрыватель:

  • Стандартный проигрыватель:

Версия

  • v1.0.0 — первый выпуск проекта.
  • v1.0.1 — обновлён maven-репозиторий.

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

  • Apache Licence (c) Copyright 2016 David Gonzalez

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Примечание: в тексте запроса присутствуют фрагменты кода на языке программирования Java, которые не были переведены. Если это не противоречит действующему законодательству или определённым договорённостям в письменной форме, программное обеспечение, распространяемое по Лицензии, предоставляется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых.

См. Лицензию для ознакомления с конкретным языком, регулирующим разрешения и ограничения по Лицензии.

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

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

Введение

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

Обновления

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

Участники

все

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

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