仕事での必要に駆られて動画再生アプリを作ろうと考えた(-_-メ)
〇必要な機能
・動画ファイルを開く
・動画ファイルの再生、停止、コマ送り
・二つ同時に開いて同時再生してながら内容を比較できるようにする
理由としては、会社がテレワーク環境を整えるためにVDIのシステムを導入した
が、既存の動画再生アプリのパフォーマンスが上がらない
そもそもコマ送りできるアプリが使えなかったり・・・などなど
いろいろアプリ探してもなかなか要求を満たすものがなく
じゃあ作るか!!
理由はこんな感じ
ということで、ざっと一番近道の実装方法を考えてみると・・・
Visual Stadio、MFCとかはさっぱりご無沙汰で
思い出すだけで数年かかりそう
Visual Basicならすぐに思い出せそうだが、そもそも組める環境なのか?!
なんやかんや使っているのはUnityしかない
ということで、ざっくりな実装方法案
〇動画ファイルを開く
⇒ファイルダイアログを呼び出して、ファイルを選択
Unityの実行環境で困難できたっけ?
〇動画ファイルの再生、停止、コマ送り
⇒こいつはVideo Player コンポーネントを使えば何とかなりそう
〇二つ同時に開いて同時再生してながら内容を比較できるようにする
⇒Video Playerを二つに並べて同時に再生すれば、何とかなるんじゃね?
前置きが長くなったが今回はUnityのビルド後の実行時にファイルダイアログを使う方法を見つけたので解説
◆イメージ
下記はUnity Editor上で実行しているが、ビルド後の環境でも同じように動作
というか、以前にも実装したことがあった
System Windows Formsをプラグインとして使用する方法
でも過去のソースをたどるのも面倒なので
検索して出てきた下記を使うことにする
上記のページからPackageをダウンロード
Packageファイルをプロジェクトにインポート
①まずは、using SFBにて、今回インポートしたスクリプトを使えるようにする
②次にいきなりダイアログを開くための関数を作成
基本はインポートしたスクリプトのサンプルを参考に調整
public string OpenFile() //最終的にはファイルパスを取得できるように
{
string FilePath;
var extensions = new[] //動画ファイルを開きたいのでフィルタをそれ用に設定
{
new ExtensionFilter( "Movie Files", "mp4", "mov", "avi" ),
};
//今回インポートしたスクリプト内のダイアログを使用する関数を実行
//引数にダイアログのタイトル、ファイルのフィルタ、複数ファイルを選択する
ためにtrue
FilePath = StandaloneFileBrowser.OpenFilePanel("Select Movie File", "", extensions, true);
return FilePath;
}
一応、以上でダイアログを開くところまでは完成
なお、プロジェクトの設定として、下記の項目をMonoにしておかないと、ビルド時にプラグインが見つからないと赤文字の英語で怒られる(イメージ)
案外ここまでは簡単にでけた
System Windows Formsだけでもできた感ありだが・・・
次回は、動画ファイル再生までを解説したい
以上