###きっかけ
WPFが登場し、MediaElemntによって、簡単にメディアの再生をすることができるようになった。しかし、対応しているのは、WMVやMP4などごく限られたフォーマット。そのような訳で、VLCをWPFで使ってみようという記事です。
###使うライブラリ
COMを使うか、P/Invokeで頑張るか考えていたら、Vlc.DotNetと言うライブラリを見つけました。今回はこれを利用していきます。
STEP 1: 環境構築
開発は、GitHubの方に移動しているので、そちらからDLLをDLしよう!と思ったわけですが、ないため、ソースを全部DLして、ビルドします。Gitで落とすもよし、Zipのボタンで落とすのもよしです。そうしたら、Build.batというのがあるので、それをダブクリすれば、何回かキーを叩くだけでビルド終了です。
STEP 2: プロジェクト構築
フツーにWPFプロジェクトを作成してください。
参照が肝心です。ビルドが完了すると、
- Vlc.DotNet - Build Output
- Vlc.DotNet.Core
- Vlc.DotNet.Core.Interops
- Vlc.DotNet.Forms
- Vlc.DotNet.Wpf
上のようなフォルダ階層ができたはずです。その中で、Vlc.DotNet.Wpfの中にある、"Debug - x64 - .Net 3.5"というようなファイルが有ると思います。その中で、Release、x86で、あとは適切な.Netバージョンのフォルダを選び、その中のDLLをすべて参照してください。(x64は設定が面倒なので、今回はx86を使用します。) 参照したあと、解答したあとのフォルダを開いて、"Vlc\x86"にある、"Rinecewind"のフォルダを、プロジェクトの"bin\Debug"と"bin\Release"フォルダにコピーしてください。これでプロジェクト構築は完了です。
STEP 3: プログラミング
MainWindow.xamlに、
xmlns:vlc="clr-namespace:Vlc.DotNet.Wpf;assembly=Vlc.DotNet.Wpf"
を、xmlns属性が群がっているところに挿入してください。そして、Gridの中に、を入れてください。
なお、名前は当然ながら任意です。
そして、コードビハインド。Newか、Loadedイベントのところに、このコードを挿入しましょう。
player.MediaPlayer.VlcLibDirectory = new System.IO.DirectoryInfo(System.IO.Path.Combine(System.Environment.CurrentDirectory, "Vlc_Lib\\x86\\"))
player.MediaPlayer.VlcLibDirectory = New IO.DirectoryInfo(IO.Path.Combine(Environment.CurrentDirectory, "Vlc_Lib\x86\"))
これで、VLCのDLL達の居場所を設定することが出来ました。もし、設定してなければ、"You must set なんちゃらこんちゃら"と怒られます。なので、忘れずに設定してあげましょう。
これで、VlcControlで再生できるようになりました。Playメソッドなど、直感的でわかりやすいので、使いこなしてあげましょう。
###あとがき
これが初投稿なので、経験がありません。従って、わかりにくいかもしれません。もし、そうであれば、コメントしてください。いじめないでください(おい
とは言え、読んでい頂きありがとうございました。VLCのシェアが伸びることを願って(・ω・)ノシ