|
詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したHarmonyOSテクノロジーコミュニティ。 https://harmonyos..com 序文 本プロジェクトは、GitHub上のBilibiliオープンソースプロジェクト(https://github.com/bilibili/DanmakuFlameMaster)をベースに、HarmonyOSへの移行と再構築を行い、弾幕コメントの非表示、表示、一時停止、再開、送信、時間指定送信といった様々な機能を実現しました。コードはオープンソース化されています(https://gitee.com/isrc_ohos/danmaku-flame-master_ohos)。皆様のダウンロード、ご利用、そして貴重なフィードバックをお待ちしております。 この記事では、弾丸スクリーンライブラリの機能と使い方をよりわかりやすく説明するために、基礎知識、使用方法、サンプル分析の3つの側面について説明します。 I. Bullet Screenライブラリの基礎知識 箇条書きコメントライブラリはオープンソースのサードパーティライブラリです。箇条書きコメントライブラリの使い方を詳しく説明する前に、まずはサードパーティライブラリの意味を理解しておきましょう。 サードパーティライブラリとは、ローカルライブラリやシステムライブラリ以外のライブラリのことで、使用する前にインストールする必要があります。簡単に言えば、誰かがコードを書き、機能インターフェースを実装したようなものです。これらのインターフェースを直接呼び出すことで、必要な機能を実現できます。例えば、アプリケーションにビデオキャッシュ機能を実装する場合(接続が切断された後でも、事前にキャッシュされたコンテンツを再生できるようにする)、HarmonyOS/Androidの基盤となるメソッドを呼び出す必要があり、膨大なコード量になります。しかし、既にこの機能を備えたオープンソースのサードパーティライブラリが存在する場合は、そのライブラリを参照し、公開されているメソッドをいくつか呼び出すだけで、数行のコードでキャッシュ機能を実装できます。 サードパーティライブラリとは何かを理解したところで、箇条書きコメントライブラリコンポーネントを見てみましょう。箇条書きコメントは動画視聴時に欠かせないインタラクティブ機能であり、この機能は箇条書きコメントライブラリコンポーネントを呼び出すことで実装されます。HarmonyOSプラットフォームに箇条書きコメントライブラリ機能を実装できたので、次はHarmonyOSの箇条書きコメントライブラリについて詳しく見ていきましょう。 II. バレットスクリーンライブラリの使い方 弾丸スクリーン ライブラリ用のサードパーティ コンポーネントの使用方法に関するビデオ チュートリアルを用意しました。ダウンロードして使用できます。 ビデオチュートリアルリンク: https://www.bilibili.com/video/BV1Dy4y1i7cG/ III. サンプル分析 箇条書きコメント ライブラリ コンポーネントをインポートすると、プロジェクトの全体的なファイル構造は次のようになります。 プロジェクト全体には、entry と DanmakuFlameMaster の 2 つのモジュールがあります。 これを理解する簡単な方法は次のとおりです。 ==》 「DanmakuFlameMaster」は先ほども述べた、弾幕スクリーン機能の細部まで全て実装したサードパーティ製のライブラリです。 ==> エントリは、HarmonyOS プログラム内のすべてのランタイム詳細を宣言する特定の「クライアント」モジュールです。 ==> 最終的に実行されるプログラムはentryです。entryはインターフェース、ボタン、関数など、すべての機能を実装しています。ただし、entryはサードパーティ製のライブラリ「DanmakuFlameMaster」を呼び出し、その機能を利用して弾幕関連の機能を実装しています。 本記事では、既に構築済みのサードパーティライブラリ「DanmakuFlameMaster」をベースに、「entry」を開発する方法を中心に紹介します。 スペースを節約するため、ここでは既に開発済みのサンプルを使用します。このサンプルを例として、Bullet Screen Libraryコンポーネントの適用方法と効果を説明します。 エントリを展開すると、実際のコードは非常に少ないことがわかります。主要な機能はMainAbilityファイルとMainAbilitySliceファイルに集中しており、コードの総サイズは1,000行未満です。 次に、これら 2 つのファイルを 1 つずつ分析します。 1. MainAbility はすべてのアプリケーションのエントリ ポイントです。 HarmonyOSの機能に基づき、setMainRoute()メソッドを使用して複数のスライスを呼び出し、関数を実装できます。上の画像でマークされているコードは、MainAbilitySlice内でMainRouteを宣言しています。 2. MainAbilitySlice、このファイルは非常に重要です。 このファイルは、主にインポート ファイル、初期化関数、関数実装関数の 3 つの部分で構成されます。 (1)ファイルのインポート ここでインポートされるファイルは、SDK ファイル、アプリケーション内ファイル、サードパーティ ファイルの 3 つのカテゴリに分類できます。 == 》 SDK ファイル: インポート後のパスは ohos..... です。 == 》アプリケーション内ファイル:インポート後、パスはcom.huaweiです...... == 》サードパーティライブラリファイル:インポート後、パスはmaster.flame.danmukuです...... (2)初期化関数: 図に示すように、初期化関数は6つの部分から構成され、5つのセクションに分割されています。これらの5つのセクションは、図中の以下の機能に対応しています。UIの初期化、ビデオソースのセットアップと再生(2つの機能)、システムメモリ情報の出力、データソースの設定(ここでのデータは箇条書きコメントデータを指します)、箇条書きコメントの出力。これらの5つのセクションのうち、箇条書きコメントライブラリと密接に関連する部分、つまりUIの初期化、箇条書きコメントデータソース、および箇条書きコメント出力について主に説明します。 1) onStart メソッドは UI の初期化を実装します。 上記のコードは、弾丸スクリーン ライブラリの表示ウィンドウを構築し、スクリーン パラメータを設定します。 2) 箇条書きコメントのデータソースと最終出力 この2つの部分は密接に関連しているので、一緒に紹介します。 ステップ 1: 弾丸スクリーン データを保持するためのグローバル変数 mParser を宣言します。 ステップ 2: データ ソースの読み込みポイントで、サードパーティ ライブラリの BiliDanmukuParser クラスが呼び出され、リソースから弾丸画面のデータが読み取られます。 ご覧の通り、データソースは実際にこのファイルを読み込みます。ファイルをクリックすると、その内容(「バレットスクリーンデータベース」)を確認できます。 ステップ 3: 箇条書きコメントを読み込んだ BaseDanmakuParser クラス オブジェクトをグローバル変数 mParser に返します (このコード部分は、findview() で見つけることができます)。 3. 機能実装 UIにはボタンが表示されており、それぞれがコールバック関数に対応しています。ボタンをクリックすると、対応する関数本体が実行され、関連する機能が実装されます。 上の画像は、さまざまなボタンをクリックすると、箇条書き画面の非表示、箇条書き画面の表示、箇条書き画面の一時停止など、さまざまな箇条書き画面効果が生成される様子を示しています。 プロジェクト貢献者 Xiong Yixiang、Zheng Senwen、Zhu Wei、Chen Meiru、Lü Ze 詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したHarmonyOSテクノロジーコミュニティ。 https://harmonyos..com |