DXライブラリで動画ファイルを再生する方法
DXライブラリで動画ファイルを再生するには、まず動画ファイルを読み込み、再生するための関数を使用します。
具体的には、LoadGraph関数
で動画ファイルを読み込み、PlayMovieToGraph関数
で再生を開始します。
再生中の動画はDrawGraph関数
で描画できます。
再生が終了したかどうかはGetMovieStateToGraph関数
で確認し、終了後はDeleteGraph関数
でリソースを解放します。
- DXライブラリで動画ファイルを再生する方法
- 動画の再生を制御する手法
- 複数の動画を同時に扱う技術
- 音声と動画の同期再生の実装
- 動画の特定部分を切り取る方法
動画ファイルの読み込み
動画ファイルを再生するためには、まずそのファイルをプログラムに読み込む必要があります。
DXライブラリでは、LoadGraph関数
を使用して動画ファイルを読み込むことができます。
以下にその使い方を詳しく解説します。
LoadGraph関数の使い方
LoadGraph関数
は、指定したファイルパスから画像データを読み込み、グラフィックハンドルを返します。
動画ファイルを扱う際には、まずこの関数を使って動画を読み込む必要があります。
#include <DXLib.h>
int main() {
// DXライブラリの初期化
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
// 動画ファイルの読み込み
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルのパスを指定
// エラーチェック
if (graphHandle == -1) {
// 読み込み失敗時の処理
DxLib_End(); // DXライブラリの終了
return -1; // エラーコードを返す
}
// ここに動画再生のコードを追加
// DXライブラリの終了
DxLib_End();
return 0;
}
このコードでは、LoadGraph関数
を使ってvideo.mp4
という動画ファイルを読み込んでいます。
読み込みに成功すると、グラフィックハンドルが返されます。
失敗した場合は-1
が返されるため、エラーチェックを行っています。
動画ファイルのパス指定
動画ファイルのパスは、プログラムが実行されるディレクトリに対する相対パスまたは絶対パスで指定できます。
以下のように、パスを指定する際の注意点をまとめました。
指定方法 | 説明 |
---|---|
相対パス | 実行ファイルからの相対的な位置を指定 |
絶対パス | フルパスでファイルの位置を指定 |
拡張子の確認 | 対応している動画フォーマットを確認 |
動画ファイルの拡張子は、DXライブラリが対応している形式である必要があります。
一般的には、.mp4
や.avi
などが使用されます。
読み込みエラーの対処法
動画ファイルの読み込みに失敗した場合、いくつかの原因が考えられます。
以下に、エラーの対処法を示します。
- ファイルパスの確認: 指定したパスが正しいか確認します。
- ファイル形式の確認: DXライブラリが対応している動画形式であるか確認します。
- ファイルの存在確認: 指定した場所にファイルが存在するか確認します。
これらの対処法を試みることで、動画ファイルの読み込みエラーを解決できる可能性があります。
動画の再生
動画ファイルを読み込んだ後は、実際に再生を行います。
DXライブラリでは、PlayMovieToGraph関数
を使用して動画を再生することができます。
以下にその使い方や関連する処理について詳しく解説します。
PlayMovieToGraph関数の使い方
PlayMovieToGraph関数
は、指定したグラフィックハンドルを使って動画を再生します。
以下のサンプルコードでは、動画を再生する基本的な流れを示しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
// 動画の再生
PlayMovieToGraph(graphHandle); // 動画の再生開始
// メインループ
while (1) {
if (ProcessMessage() != 0) break; // ウィンドウのメッセージ処理
// 動画の再生が終了したか確認
if (GetMovieStateToGraph(graphHandle) == 0) break;
ClearDrawScreen(); // 画面のクリア
// 動画の描画
DrawGraph(0, 0, graphHandle, FALSE);
ScreenFlip(); // バッファの入れ替え
}
// グラフィックハンドルの解放
DeleteGraph(graphHandle);
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、PlayMovieToGraph関数
を使って動画を再生しています。
再生位置は(0, 0)
に指定しています。
メインループ内でウィンドウのメッセージ処理を行い、画面をクリアしてバッファを入れ替えています。
再生中の描画処理
動画を再生中に他の描画処理を行うことも可能です。
例えば、画面上にテキストを表示することができます。
以下のサンプルコードでは、動画再生中にテキストを描画しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
while (1) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
// テキストの描画
DrawString(10, 10, "動画再生中...", GetColor(255, 255, 255)); // 白色のテキスト
ScreenFlip(); // バッファの入れ替え
}
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、DrawString関数
を使って動画再生中にテキストを画面に描画しています。
再生の一時停止と再開
動画の再生を一時停止し、再開する機能を実装することも可能です。
以下のサンプルコードでは、特定のキーを押すことで再生を一時停止し、再度押すことで再開する処理を追加しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
// 動画の再生
PlayMovieToGraph(graphHandle); // 動画の再生開始
int isPaused = FALSE; // 一時停止フラグ
int prevSpaceKeyState = FALSE; // 前回のスペースキーの状態
// メインループ
while (1) {
if (ProcessMessage() != 0) break; // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
// 動画の描画
DrawGraph(0, 0, graphHandle, FALSE);
// テキストの描画
if (isPaused) {
// 一時停止中の処理
DrawString(10, 10, "一時停止中...", GetColor(255, 0, 0)); // 赤色のテキスト
PauseMovieToGraph(graphHandle); // 動画の一時停止
}
else {
DrawString(10, 10, "動画再生中...", GetColor(255, 0, 0)); // 白色のテキスト
PlayMovieToGraph(graphHandle); // 動画の再生
}
// スペースキーで一時停止/再開
int currentSpaceKeyState = CheckHitKey(KEY_INPUT_SPACE);
if (currentSpaceKeyState && !prevSpaceKeyState) {
isPaused = !isPaused; // フラグの切り替え
}
prevSpaceKeyState = currentSpaceKeyState;
ScreenFlip(); // バッファの入れ替え
}
// グラフィックハンドルの解放
DeleteGraph(graphHandle);
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、スペースキーを押すことで動画の再生を一時停止したり再開したりすることができます。
再生終了の検出方法
動画の再生が終了したかどうかを検出するには、CheckMovieToGraph関数
を使用します。
この関数は、再生が終了した場合に0
を返します。
以下のサンプルコードでは、再生終了を検出し、メッセージを表示する処理を追加しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
while (1) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
// 動画の描画
DrawGraph(0, 0, graphHandle, FALSE);
// 再生終了の検出
if (GetMovieStateToGraph(graphHandle) == 0) {
DrawString(10, 10, "再生終了", GetColor(255, 255, 0)); // 黄色のテキスト
break; // ループを抜ける
}
ScreenFlip(); // バッファの入れ替え
}
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、動画の再生が終了した場合に「再生終了」というメッセージを表示し、ループを抜ける処理を実装しています。
これにより、再生が終了したことをユーザーに通知することができます。
動画の制御
動画を再生する際には、再生位置の変更や音量調整、再生速度の変更など、さまざまな制御が可能です。
ここでは、DXライブラリを使用した動画の制御方法について詳しく解説します。
SeekMovieToGraphでのシーク操作
SeekMovieToGraph関数
を使用すると、動画の再生位置を指定した時間に移動させることができます。
以下のサンプルコードでは、動画の再生位置を5秒にシークする例を示しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
// 5秒後にシーク
SeekMovieToGraph(graphHandle, 5000); // 5000ミリ秒(5秒)にシーク
while (1) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
ScreenFlip(); // バッファの入れ替え
}
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、SeekMovieToGraph関数
を使って動画の再生位置を5秒に移動させています。
シーク操作を行うことで、特定のシーンから再生を開始することができます。
音量調整の方法
動画の音量を調整するには、SetVolume関数
を使用します。
この関数を使って、音量を0から255の範囲で設定することができます。
以下のサンプルコードでは、音量を128に設定しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
SetVolume(128); // 音量を128に設定
while (1) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
ScreenFlip(); // バッファの入れ替え
}
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、SetVolume関数
を使って音量を設定しています。
音量を調整することで、動画の音声を適切なレベルに保つことができます。
再生速度の変更
再生速度を変更するには、SetMovieSpeed関数
を使用します。
この関数を使って、再生速度を変更することができます。
以下のサンプルコードでは、再生速度を2倍に設定しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
SetMovieSpeed(graphHandle, 2.0f); // 再生速度を2倍に設定
while (1) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
ScreenFlip(); // バッファの入れ替え
}
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、SetMovieSpeed関数
を使って再生速度を2倍に設定しています。
再生速度を変更することで、動画の内容を速く再生したり、遅く再生したりすることができます。
再生位置の取得
現在の再生位置を取得するには、GetMoviePosition関数
を使用します。
この関数を使って、現在の再生位置をミリ秒単位で取得することができます。
以下のサンプルコードでは、再生位置を取得して表示しています。
#include <DxLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("resource/sample.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
// 動画の再生
PlayMovieToGraph(graphHandle); // 動画の再生開始
// メインループ
while (1) {
if (ProcessMessage() != 0) break; // ウィンドウのメッセージ処理
// 動画の再生が終了したか確認
if (GetMovieStateToGraph(graphHandle) == 0) break;
ClearDrawScreen(); // 画面のクリア
// 動画の描画
DrawGraph(0, 0, graphHandle, FALSE);
// 動画の再生位置を取得して表示
int currentPosition = TellMovieToGraph(graphHandle);
DrawFormatString(10, 10, GetColor(255, 0, 0), "Current Position: %d ms", currentPosition);
ScreenFlip(); // バッファの入れ替え
}
// グラフィックハンドルの解放
DeleteGraph(graphHandle);
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、GetMoviePosition関数
を使って現在の再生位置を取得し、画面に表示しています。
再生位置を取得することで、ユーザーに現在の進行状況を示すことができます。
動画の停止とリソース解放
動画の再生が終了した後は、適切にリソースを解放することが重要です。
DXライブラリでは、StopMovieToGraph関数
を使用して動画を停止し、DeleteGraph関数
でリソースを解放します。
以下にそれぞれの使い方と注意点を解説します。
PauseMovieToGraph関数の使い方
StopMovieToGraph関数
は、指定したグラフィックハンドルに関連付けられた動画の再生を停止します。
以下のサンプルコードでは、動画を再生した後に停止する処理を示しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
// メインループ
while (1) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
// 'S'キーで動画を停止
if (CheckHitKey(KEY_INPUT_S)) {
PauseMovieToGraph(graphHandle); // 動画の停止
break; // ループを抜ける
}
ScreenFlip(); // バッファの入れ替え
}
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、CheckHitKey関数
を使って’S’キーが押されたときにStopMovieToGraph関数
を呼び出し、動画を停止しています。
動画を停止することで、再生を中断することができます。
DeleteGraphでのリソース解放
動画の再生が終了した後は、DeleteGraph関数
を使用してリソースを解放する必要があります。
この関数は、指定したグラフィックハンドルに関連付けられたリソースを解放します。
以下のサンプルコードでは、動画の再生後にリソースを解放する処理を示しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
// メインループ
while (1) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
// 'S'キーで動画を停止
if (CheckHitKey(KEY_INPUT_S)) {
PauseMovieToGraph(graphHandle); // 動画の停止
break; // ループを抜ける
}
ScreenFlip(); // バッファの入れ替え
}
DeleteGraph(graphHandle); // リソースの解放
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、動画を停止した後にDeleteGraph関数
を呼び出してリソースを解放しています。
リソースを解放することで、メモリの無駄遣いを防ぐことができます。
メモリリークを防ぐための注意点
メモリリークを防ぐためには、以下の点に注意することが重要です。
- リソースの解放: 使用が終わったリソースは必ず解放する。
特に、DeleteGraph
やStopMovieToGraph
を忘れずに呼び出す。
- エラーチェック: リソースの読み込みや処理に失敗した場合は、適切にエラーハンドリングを行い、リソースを解放する。
- プログラムの終了時: プログラムが終了する際には、全てのリソースが解放されていることを確認する。
これらの注意点を守ることで、メモリリークを防ぎ、プログラムの安定性を向上させることができます。
応用例
DXライブラリを使用して動画を扱う際には、さまざまな応用が可能です。
ここでは、複数の動画を同時に再生したり、音声と動画を同期させたりする方法など、いくつかの応用例を紹介します。
複数動画の同時再生
複数の動画を同時に再生するには、それぞれの動画に対してグラフィックハンドルを用意し、メインループ内で再生処理を行います。
以下のサンプルコードでは、2つの動画を同時に再生しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle1 = LoadGraph("video1.mp4"); // 動画1の読み込み
int graphHandle2 = LoadGraph("video2.mp4"); // 動画2の読み込み
if (graphHandle1 == -1 || graphHandle2 == -1) return -1; // 読み込み失敗時は終了
PlayMovieToGraph(graphHandle1, 0, 0); // 動画1の再生
PlayMovieToGraph(graphHandle2, 320, 0); // 動画2の再生
while (1) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
// 動画の描画
DrawGraph(0, 0, graphHandle1, TRUE); // 動画1の描画
DrawGraph(320, 0, graphHandle2, TRUE); // 動画2の描画
ScreenFlip(); // バッファの入れ替え
}
DeleteGraph(graphHandle1); // リソースの解放
DeleteGraph(graphHandle2); // リソースの解放
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、2つの動画をそれぞれ異なる位置に同時に再生しています。
DrawGraph関数
を使って、動画を画面に描画しています。
動画と音声の同期再生
動画と音声を同期させて再生するには、音声ファイルを別途読み込み、動画の再生と同時に音声を再生します。
以下のサンプルコードでは、動画と音声を同期させて再生しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
int soundHandle = LoadSoundMem("audio.mp3"); // 音声ファイルの読み込み
if (graphHandle == -1 || soundHandle == -1) return -1; // 読み込み失敗時は終了
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
PlaySoundMem(soundHandle, DX_PLAYTYPE_BACK); // 音声の再生
while (1) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
ScreenFlip(); // バッファの入れ替え
}
DeleteGraph(graphHandle); // リソースの解放
DeleteSoundMem(soundHandle); // リソースの解放
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、動画と音声を同時に再生しています。
音声はバックグラウンドで再生され、動画と同期して流れます。
動画の一部を切り取って再生する
動画の特定の部分だけを切り取って再生するには、SeekMovieToGraph関数
を使用して再生位置を指定します。
以下のサンプルコードでは、動画の10秒から15秒の部分を再生しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
// 10秒にシーク
SeekMovieToGraph(graphHandle, 10000); // 10000ミリ秒(10秒)にシーク
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
// 5秒間再生(10秒から15秒の部分)
for (int i = 0; i < 5000; i += 16) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
ScreenFlip(); // バッファの入れ替え
}
PauseMovieToGraph(graphHandle); // 動画の停止
DeleteGraph(graphHandle); // リソースの解放
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、動画の10秒から15秒の部分を切り取って再生しています。
SeekMovieToGraph関数
を使って再生位置を指定し、その後5秒間再生しています。
動画のループ再生
動画をループ再生するには、再生が終了した際に再度再生を行う処理を実装します。
以下のサンプルコードでは、動画をループ再生しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
while (1) {
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
// 再生が終了するまで待機
while (CheckMovieToGraph(graphHandle) == 0) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
ScreenFlip(); // バッファの入れ替え
}
}
DeleteGraph(graphHandle); // リソースの解放
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、動画が終了したら再度再生を行うループを実装しています。
これにより、動画が繰り返し再生されます。
動画の再生速度をリアルタイムで変更する
動画の再生速度をリアルタイムで変更するには、特定のキー入力に応じてSetMovieSpeed関数
を呼び出します。
以下のサンプルコードでは、’U’キーで再生速度を2倍に、’D’キーで通常速度に戻す処理を実装しています。
#include <DXLib.h>
int main() {
ChangeWindowMode(TRUE); // ウィンドウモードに設定
if (DxLib_Init() == -1) return -1; // 初期化失敗時は終了
int graphHandle = LoadGraph("video.mp4"); // 動画ファイルの読み込み
if (graphHandle == -1) return -1; // 読み込み失敗時は終了
PlayMovieToGraph(graphHandle, 0, 0); // 動画の再生
SetMovieSpeed(graphHandle, 1.0f); // 初期速度を設定
while (1) {
ProcessMessage(); // ウィンドウのメッセージ処理
ClearDrawScreen(); // 画面のクリア
// 'U'キーで再生速度を2倍に
if (CheckHitKey(KEY_INPUT_U)) {
SetMovieSpeed(graphHandle, 2.0f); // 再生速度を2倍に設定
}
// 'D'キーで再生速度を通常に戻す
if (CheckHitKey(KEY_INPUT_D)) {
SetMovieSpeed(graphHandle, 1.0f); // 再生速度を通常に戻す
}
ScreenFlip(); // バッファの入れ替え
}
DeleteGraph(graphHandle); // リソースの解放
DxLib_End(); // DXライブラリの終了
return 0;
}
このコードでは、’U’キーを押すことで再生速度を2倍に、’D’キーを押すことで通常速度に戻すことができます。
これにより、ユーザーがリアルタイムで再生速度を変更できるようになります。
よくある質問
まとめ
この記事では、DXライブラリを使用して動画ファイルを再生する方法について詳しく解説しました。
動画の読み込みから再生、制御、リソースの解放、さらには応用例に至るまで、さまざまな機能を紹介しました。
これを機に、実際にDXライブラリを使って動画を扱うプログラムを作成してみることをお勧めします。
自分のプロジェクトに応じて、動画の再生機能を活用し、より魅力的なアプリケーションを開発してみてください。