さっき、GyaOで『機動戦士ガンダムOO』の第十九話を観終わったところです。
困りました。ルイスです。本当、どうしたものでしょう。
さっき、GyaOで『機動戦士ガンダムOO』の第十九話を観終わったところです。
困りました。ルイスです。本当、どうしたものでしょう。
さっき、GyaOで『機動戦士ガンダムOO』の第十八話を観終わったところです。ただ、それだけのことです。
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弄りメモでした。他にも情報がありましたら教えて下さい。
理解できません。僕は何をしたらいいのでしょうか?僕にもわかるように要求仕様を教えて下さい。
どう書く?には珍しく実用的なお題です。
アルゴリズムでかなり悩んでたのですが、書き始めてみたらサクッと出来ました。コードを書く行為そのものに思考をまとめる作用があるようです。
久々の一番乗りです。いぇい。