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

OSCHINA-MIRROR/isrc_ohos-danmaku-flame-master_ohos

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

Данным текст представляет собой перевод исходного текста на русский язык:

Данный проект является результатом переноса и разработки проекта DanmakuFlameMaster с открытым исходным кодом, который был адаптирован для HarmonyOS. Исходный проект можно отследить по тегам и адресу GitHub (https://github.com/bilibili/DanmakuFlameMaster). Подробное описание проекта было опубликовано в публичном аккаунте, доступ к которому можно получить через веб-сайт ( https://harmonyos.51cto.com/posts/3261).

Проект представляет собой:

  • Проект с открытым исходным кодом: анализатор и движок для рисования оверлейных комментариев.
  • Серия: компоненты HarmonyOS сторонних разработчиков.
  • Функции: поддержка отображения, скрытия, отображения, приостановки, возобновления, отправки и отправки комментариев по расписанию.
  • Состояние переноса проекта: завершено.
  • Различия в вызовах: нет.
  • Версия разработки: SDK 5.
  • Автор проекта: Сюн Цзисян.
  • Контакты: isrc_hm@iscas.ac.cn.
  • Адрес исходного проекта Doc: https://github.com/bilibili/DanmakuFlameMaster.

Технические характеристики:

  • Язык программирования: Java.
  • Внешние библиотеки: org.jar.

Установка

  1. Загрузите библиотеку jar DanmakuFlameMaster_ohos.jar.
  2. Запустите DevEco Studio и импортируйте загруженный файл jar в каталог «entry->libs».
  3. В файле build.gradle на уровне модуля добавьте зависимость, добавив ссылку на файл jar в каталоге libs.
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
    ……
}
  1. Щёлкните правой кнопкой мыши на импортированном файле jar, выберите «Добавить как библиотеку», выберите модуль, который необходимо связать, и нажмите «ОК», чтобы успешно связать его.

Если не удаётся запустить проект, удалите файлы .gradle, .idea, build, gradle и build.gradle и создайте новый проект на основе вашей версии. Скопируйте соответствующие файлы из нового проекта в корневой каталог.

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

  1. Определите макет файла, предоставив элемент управления DanmukuView.
<master.flame.danmaku.ui.widget.DanmakuView
            ohos:id="$+id:sv_danmaku"
            ohos:width="match_parent"
            ohos:height="match_parent" />
  1. Настройте инициализацию оверлеев с помощью DanmakuContext, например, установите стиль рамки с помощью .setDanmakuStyle и масштабирование скорости прокрутки с помощью .setScrollSpeedFactor.
  2. Создайте объект анализатора оверлеев BaseDanmakuParser и проанализируйте входной поток.
private BaseDanmakuParser createParser(InputStream stream) {
        if (stream == null) {
            return new BaseDanmakuParser() {
                @Override
                protected Danmakus parse() {
                    return new Danmakus();
                }
            };
        }
        ILoader loader = DanmakuLoaderFactory.create(DanmakuLoaderFactory.TAG_BILI);
        try {
            loader.load(stream);
        } catch (IllegalDataException e) {
            e.printStackTrace();
        }
        BaseDanmakuParser parser = new BiliDanmukuParser();
        IDataSource<?> dataSource = loader.getDataSource();
        parser.load(dataSource);
        return parser;
    }

Здесь данные загружаются в анализатор с помощью baseDanmakuParser.load(dataSource), а XML-анализ выполняется с помощью DanmakuLoaderFactory.create(DanmakuLoaderFactory.TAG_BILI), а JSON-анализ — с помощью DanmakuLoaderFactory.create(DanmakuLoaderFactory.TAG_ACFUN).

  1. Запустите оверлейную библиотеку:
//Установите связанные обратные вызовы оверлея DanmakuView
mDanmakuView.setCallback(new master.flame.danmaku.controller.DrawHandler.Callback() {
                @Override
                public void updateTimer(DanmakuTimer timer) {
                }

                @Override
                public void drawingFinished() {
                }

                @Override
                public void danmakuShown(BaseDanmaku danmaku) {
                }

                @Override
                prepared() {                    
                    mDanmakuView.start();
                }
            });
            mDanmakuView.prepare(mParser, mContext);
            mDanmakuView.showFPS(true);
            mDanmakuView.enableDanmakuDrawingCache(true);
  1. Добавьте текстовый оверлей:
BaseDanmaku danmaku = mContext.mDanmakuFactory.createDanmaku(BaseDanmaku.TYPE_SCROLL_RL);
        if (danmaku == null || mDanmakuView == null) {
            return;
        }
        danmaku.text = "Это вы сами отправили" + System.nanoTime();
        danmaku.padding = 5;
        danmaku.priority = 0;  // Может быть отфильтровано и скрыто различными фильтрами
        danmaku.isLive = islive;
        danmaku.setTime(mDanmakuView.getCurrentTime() + 1200);
        danmaku.textSize = 25f * (mParser.getDisplayer().getDensity() - 0.6f);
        danmaku.textColor = Color.RED.getValue();
        danmaku.textShadowColor = Color.WHITE.getValue();

        danmaku.borderColor = Color.GREEN.getValue();
        mDanmakuView.addDanmaku(danmaku);
  • Скрыть оверлей: mDanmakuView.hide().
  • Показать оверлей: mDanmakuView.show().
  • Приостановить оверлей: mDanmakuView.pause().
  • Возобновить оверлей: mDanmakuView.resume().
  • Отправить оверлей по расписанию:
Boolean b = (Boolean) mBtnSendDanmakus.getTag(); ```
timer.cancel();
if (b == null || !b) {
    mBtnSendDanmakus.setText("取消定时");
    timer = new Timer();
    timer.schedule(new AsyncAddTask(), 0, 1000);
    mBtnSendDanmakus.setTag(true);
} else {
    mBtnSendDanmakus.setText("定时发送");
    mBtnSendDanmakus.setTag(false);
}
Timer timer = new Timer();
class AsyncAddTask extends TimerTask {

    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            addDanmaku(true);
            SystemClock.sleep(20);
        }
    }
};

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

  • v0.1.0-alpha

Информация о лицензии и авторских правах

DanmakuFlameMaster_ohos лицензирован под Apache License, version 2.0.

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

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

Введение

Проект с открытым исходным кодом по анализу и отрисовке титров от компании Huihuo. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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