DirectShow関係2(DirectX9+VB.net)


1.動画の再生

VB.netからDirectX9で動画を再生する方法を簡単に紹介します。


(1)プロジェクトの作成

まずはVB.netのプロジェクトを作ります。
メニューから「ファイル」−「新規作成」−「プロジェクト」を選び、
VisualBasicプロジェクトを選択します。

上の図では名前は「dshownet1」としていますが、適当な名前をつけてもらってかまわないです。

右側のテンプレートでは「Windowsアプリケーション」を選択します。(別になんでもいいんだけど)
DirectX9SDKをインストールすると「DirectX9 Visual Basic Wizard」というのが増えてますが、
今回は使いません。そのうち時間があったらそっちの方もやってみようかと思います。

 

(2)参照の追加

プロジェクトができましたら、DirectX用の参照を追加します。
メニューの「プロジェクト」−「参照の追加」を選択します。

リストから「Microsoft.DirectX..AudioVideoPlayback」を選び、選択ボタンで追加します。

これで動画の再生に必要な部品が使えるようになります。

 

(3)コーディング
フォームをダブルクリックしてコードを入力します。


Public Class Form1

    Inherits System.Windows.Forms.Form



#Region " Windows フォーム デザイナで生成されたコード "

 略

#End Region



    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load



    End Sub

End Class

    	

デフォルトで上の様なコードになっていると思いますので、
以下の文を追加します。(青色部分)


Public Class Form1

    Inherits System.Windows.Forms.Form



#Region " Windows フォーム デザイナで生成されたコード "

 略

#End Region



    Private Const FILENAME As String = "C:\DXSDK\Samples\Media\highway.avi"



    Private mMedia As Microsoft.DirectX.AudioVideoPlayback.Video



    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        mMedia = New Microsoft.DirectX.AudioVideoPlayback.Video(FILENAME, False)

        mMedia.Owner = Me

        mMedia.Play()

    End Sub

End Class

    	

これだけです(^^;
一応順に説明します。

    Private Const FILENAME As String = "C:\DXSDK\Samples\Media\highway.avi"    	

例によってSDKに付属するサンプル動画のファイル名を定義します。

    Private mMedia As Microsoft.DirectX.AudioVideoPlayback.Video    	

動画再生を行うMicrosoft.DirectX.AudioVideoPlayback.Videoクラスの変数を定義します。

        mMedia = New Microsoft.DirectX.AudioVideoPlayback.Video(FILENAME, False)

        mMedia.Owner = Me

        mMedia.Play()

Form1_Load内でこのVideoクラスのインスタンスを作成し、再生開始までしています。
Videoクラスのコンストラクタは2種類ありますが、
違いは自動的に再生を開始するかどうかのスイッチの有無で
どちらもファイル名を必要になります。

Ownerプロパティは動画を再生するコンテナを指定します。
ここではMe,つまりForm1フォームをコンテナにしています。
Ownerプロパティを指定しない場合は、別ウィンドウで再生されます。

最後にPlayメソッドで動画の再生を開始しています。

 


(動画が再生されるのが見えるでしょう。
 愚か者には見えないようなプロテクトがかかってますが笑)

 


このように再生はとっても簡単です。
自動的にウィンドウサイズを動画サイズに変更してくれますし、
ウィンドウサイズを変更すれば動画サイズが変わります。
至れり尽くせりですね。(楽過ぎ)

 


上に戻る