C#でWindows Media Player ActiveX コントロールを使う

chakemiです。気づいたらblogを書くことになっていて、戸惑ってます。

テーマもプログラミングが中心で、プログラマーでもない素人がどうしたらいいもんか考えましたが、素人ながらに年に一、二度書く機会があったりで、その時学んだ事の備忘録、この先の勉強日記を綴っていこうかと思います。

って事で、記念すべき第一回は、Windows Media Player ActiveX コントロールを使った時のメモ。

WindowsMediaのstreamを監視する必要があり、色々考えた結果、コレが一番簡単だろうって事でw

開発環境はVisualStudio2008

まず、WindowsMediaPlayerSDKをインストールする必要があります。

この記事書くのに、ダウンロードURLを確認しようと思ったら、全然見つからない。。。

で、見つけたのが以下。 http://msdn.microsoft.com/ja-jp/windows/bb190309.aspx

最近はWindowsSDKに統合されてしまったの?詳細を確認してないけど、XPユーザーなら旧バージョンのWindows Media Player 10 SDKで問題無いハズ。。。

インストールが完了したら、まずはVisualStudioでコンポーネントを使えるように設定する必要がある。

メニューの「ツール」から「ツールボックス アイテムの選択」をクリック

(ツールボックスを右クリックでも表示できるらしい)

ダイアログが表示されるので、「COMコンポーネント」タブを選択

「Windows Media Player」にチェックを入れてOK

これで、ツールボックスにWindows Media Playerが表示されていると思うので、これをFormに配置

ソリューションエクスプローラーの参照設定にWMPLibが追加されていると思います。

名前はデフォルトでaxWindowsMediaPlayer1ってなってると思います。

あとは、名前空間に

1
2
using WMPLib;
using AxWMPLib;

を追加して、 適当にボタンを並べて

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void Button1_Click(object sender, EventArgs e)
{
    //autoStartプロパティはデフォルトではtrueだったような
    //axWindowsMediaPlayer1.settings.autoStart = false;

    //autoStartがtrueなら、URLプロパティを指定で自動再生
    axWindowsMediaPlayer1.URL = @"C:\Documents and Settings\All Users\Documents\~.wmv";

    //autoStartがfalseのときは、次のようにして再生する
    //axWindowsMediaPlayer1.Ctlcontrols.play();

    button1.Enabled = false;
    button2.Enabled = true;
}

private void Button2_Click(object sender, EventArgs e)
{
    //停止する
    axWindowsMediaPlayer1.Ctlcontrols.stop();

    button1.Enabled = true;
    button2.Enabled = false;
}

ってな感じでとりあえず、Windows Media Player ActiveX コントロールが簡単に使うことが出来ました。

次回は、バッファー状況、デュレーションやらイベントを使ったもんを取り上げようかと思います~。

Comments