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

EmobileをEMONEからPocketWiFiに換えたchakemiです。第3回ですが、ネタの引き出しが少ないので 引き続きWindows Media Player ActiveX コントロールを取り上げていきたいと思います。

前回までで、再生位置を取得することができましたので、シークバーかなんかを実装したいとこですが、 その前に、OpenStateChangeを取り上げたいと思います。

OpenStateChangeイベントは、axWindowsMediaPlayerコントロールのopenStateプロパティが更新されるたびに 発生するイベントです。 イベントパラメータの値はNewStateで、状態を指定する数値型となります。 値については、リファレンスのopenStateのページを参考にされるとよいかと思います。 http://msdn.microsoft.com/ja-jp/library/cc411001.aspx

では前回の続きからですが、フォームデザイナからWindowsMediaPlayerコントロールを選択します。

プロパティウィンドウのイベントアイコン(カミナリマークです)を選択し、OpenstateChangeイベントを探してください。 OpenstateChangeをダブルクリックをしてイベントハンドラを生成します。

1
2
3
4
private void axWindowsMediaPlayer1_OpenStateChange(object sender, OCXEvents_OpenStateChangeEvent e)
{

}

状態が変化してることがわかりやすいようLabelコントロールかなにかに、状態を表示してみようと思います。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
private void axWindowsMediaPlayer1_OpenStateChange(object sender, OCXEvents_OpenStateChangeEvent e)
{
    switch (e.newState)
    {
        case 0:
               label2.Text = ("Undefined"); //WindowsMediaPlayerの状態が定義されていん
               break;

        case 6:
               label2.Text = ("PlaylistOpenNoMedia"); //再生リストは開いています
               break;

        case 12:
                label2.Text = ("MediaOpening"); //メディアは取得済みで、現在開いているろです
                break;

        case 13:
                label2.Text = ("MediaOpen"); //メディアは現在開いています
                break;

        case 14:
                label2.Text = ("BeginCodecAcquistion"); //コーデックの取得を開始してす
                break;

        case 15:
                label2.Text = ("EndCodecAcquisition"); //コーデックの取得が完了しまし                break;

        case 20:
                label2.Text = ("MediaWaiting"); //メディアを待機中です
                break;

        case 21:
                label2.Text = ("OpeningUnknownURL"); //不明な種類のURLを開いています
                break;

        default:
                break;
    }
}

かなり端折って、必要そうなとこしか拾いませんでした。。。 ※コメントの日本語がおかしいのはMSのものをそのまま記述しているためですw  ホントMSの説明はわかりづらいと思うのは私だけですかね。。。

とりあえず、これで状態が確認できるようになったので、早速実行してみましょ~。 バババッとステータスが変化しているのがわかりますw

Comments