2月19日

 今日は豊富の親戚の家に行って来ました、日帰りで。親戚の家は自転車店でした。スポーツ車は皆無でした。サロベツ100マイルロードは知っていました。

 帰ってすぐに、レンタルしてきた『茄子 スーツケースの渡り鳥』を観ました。

 最近、ウエストが明らかに太いです。怖くて体重計に乗れません。アトピーは日々範囲を拡大しています。

 このままではいけないと思います。

kuma_

C#|axWindowsMediaPlayer

 axWindowsMediaPlayerの使い方をググっても情報が少なかったのでメモします。

【準備】

参照設定する。

ツールボックスで右クリック、アイテムの選択

COMコンポーネントタブをクリック

Windows Media Playerをチェック

これでツールボックスにWindows Media Playerが追加されるのでフォームに貼り付ける。

【フォームデザイナでプロパティ設定】

Ctlenabled falseにするとボタン操作が無効になる

stretchToFit 動画、画像がウィンドウのサイズに合わせて変わる。

uiMode none ボタンが表示されない。UIをお好みで実装するならこれ。

    full ボタンが表示される。WMPそのまんま。お手軽。

    invisible 表示されないって意味らしい。設定したら表示が大変なことになった。オーディオ専用ならこれか、Visible = falseでいい気がするけど。

    他に何かあったら教えて下さい。

URL 再生するファイルのパスを渡すとロードして再生の準備をする。settings.autoStart = true なら再生を開始する(既定ではfalseみたい)。

windowlessVideo trueにすると動画が表示されない。用途がわからない。

【メソッドとかプロパティとか】

Ctlcontrols.play() 再生。

Ctlcontrols.stop() 停止。

Ctlcontrols.pause() 一時停止。

Ctlcontrols.fastReverse() 早戻し、出来ないファイル形式があるみたい。

Ctlcontrols.fastForward() 早送り、上に同じ。

Ctlcontrols.currentPosition 再生位置、秒数。

Ctlcontrols.currentPositionString 再生位置、mm:ssの形式。

settings.volume = 0~100 ボリューム

settings.balance = -50~50 左右のバランス

settings.mute 消音。えってぃ動画とか見るなら必須。

status 準備完了とか一時停止とか表示されるあれ。StatusChangeイベントで更新してやるといいみたい。

currentMedia.duration 再生中のファイルの総時間。

他はよくわからなかった。

【シークバーを実装してみる】

 再生位置を更新するイベントがいくら探しても見付かりません。どうやら無い様です。Windows.Forms.Timerを使って定期的に更新することにします。スライドにはTrackBarを使います。

 再生開始したらTimerをStart()する。Intervalは既定の100でいいと思います。Windous Madia PlayerのPlayStateChengeイベントが使えるかも。currentMedia.durationでファイルの長さが得られるのでintにキャストしてTrackBarのMaxValueにセット。

 TimerのTickイベントでCtlcontrols.currentPositionをintにキャストしてTrackBarのValueにセット

 これで再生時間が刻々と更新されます。

 後はTrackBarの操作で再生位置を操作しましょう。

 TrackBarのScrollイベントでTrackBarのValueをdoubleにキャストしてCtlcontrols.currentPositionにセット。

 これだけじゃエレガントに動かないので、操作中は更新を止めましょう。

 TrackBarのMouseDownイベントでTimerをStop()。MouseUpイベントでStart()するとエレガントに動くようになりました。

 以上、WindowsMediaPlayer弄りメモでした。他にも情報がありましたら教えて下さい。