HarmonyOS実践開発:ビデオプレイヤーの実装方法 - 再生、一時停止、再生速度調整、動画切り替え機能の詳細

概要

ビデオ再生機能は、映像データをデコードしてデバイスに出力し、再生タスクを管理するプロセスです。本記事では、ビデオ再生の全体的なフロー、動画切り替え、ループ再生などのシーン開発について詳しく説明します。このサンプルでは、ローカル動画とネットワーク動画の再生機能を実装し、@ohos.multimedia.media、@ohos.resourceManager、@ohos.wifiManagerなどのインターフェースを使用して、動画の再生、一時停止、再生速度調整、動画切り替え機能を実現しています。

実装効果

ビデオプレイヤーのプレビュー

使用方法

  1. 動画画面をタップすると操作パネルが表示され、再度タップすると非表示になります。操作がない場合、5秒後に自動的に非表示になります。
  2. 一時停止/再生ボタンをタップして、動画の再生と一時停止を制御します。
  3. 再生进度バーをスライドすると、指定した位置に動画がジャンプし、動画中央に時間進捗が表示されます。
  4. 再生速度ボタンをタップすると、1.0、1.25、1.75、2.0から再生速度を選択できます。
  5. 下部の動画名をタップすると、動画を切り替えることができます。注意:「network」はネットワーク動画で、ネットワーク接続がない場合はアプリが終了します。ネットワーク接続がある場合、ローカル動画とネットワーク動画の切り替えが可能です。
  6. 左上角の終了矢印をタップすると、アプリが終了します。

ディレクトリ構造

VideoPlay/src/main/ets/
|---components
|   |---ExitVideo.ets                            // アプリ終了コンポーネント
|   |---SpeedDialog.ets                          // 再生速度ダイアログ
|   |---VideoOperate.ets                         // ビデオ操作コンポーネント
|   |---VideoPanel.ets                           // ビデオリストパネル
|---pages
|   |---Index.ets                                // メインビデオ画面
|---utils
|   |---Logger.ts                                // ログヘルパークラス
|   |---TimeUtils.ts                             // ビデオ時間ヘルパークラス
|---videomanager                                 
|   |---AvPlayManager.ts                         // ビデオ管理インターフェース、外部提供機能を統一カプセル化

実装詳細

  • ビデオの再生速度切り替え、一時停止、再生、動画切り替え、動画ジャンプ機能はすべてAvPlayManager.tsにカプセル化されています。
  • media.createAVPlayer()を使用してAVPlayerオブジェクトを取得します。
  • 再生速度切り替え:異なる再生速度を選択する際にavPlayer.setSpeed(speed: PlaybackSpeed)を呼び出します。
  • 一時停止、再生:一時停止、再生ボタンをクリックする際にavPlayer.pause()、avPlayer.play()を呼び出します。
  • 動画切り替え:動画を切り替える前に、まずavPlayer.reset()を呼び出してリソースをリセットし、その後avPlayer.fdSrcに値を割り当ててinitialized状態マシンの報告をトリガーします。
  • 動画ジャンプ:スライダーをドラッグする際にavPlayer.seek()を呼び出します。
  • ビデオプリダウンロード:prepared状態の前にavPlayer.setMediaSource()を呼び出します。

関連権限

  • ohos.permission.INTERNET
  • ohos.permission.GET_WIFI_INFO

依存関係

該当なし。

制約と制限

  1. 本サンプルは標準システムでのみ実行可能で、ネットワーク動画の再生にはインターネット接続が必要です。
  2. 本サンプルはAPI12バージョンSDKに適応済みで、バージョン番号:5.0.0.17、イメージバージョン番号:OpenHarmony5.0.0.18です。
  3. 本サンプルをコンパイルして実行するには、DevEco Studio NEXT Developer Preview1 (Build Version: 4.1.3.500, built on January 20, 2024)が必要です。

ダウンロード

本プロジェクトを単独でダウンロードするには、以下のコマンドを実行してください:

git init
git config core.sparsecheckout true
echo code/BasicFeature/Media/VideoPlay/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master

タグ: HarmonyOS ビデオプレイヤー AVPlayer multimedia メディア開発

5月20日 09:11 投稿