連続再生するメディアプレイヤーを
作成しています。
以前ご質問させていただいて(http://q.hatena.ne.jp/1262872069)
AxWindowsMediaPlayerコントロールで"nagai.mpg"の再生が終わると"nagai.mpg"
再生が終わるプログラムの作成ができました。
その後、"nagai.mpg"の再生が終わり"nagai2.mpg"を読み込んだときに
リストボックスの"nagai2.mpg"を青色にアクティブ(詳しくは添付画像ご参照)に
するようなプログラムを作成したく調べております。
AxWindowsMediaPlayerコントロールで動画の再生が終わったことを
検知するようなプログラムの書き方などがわかる方
お知恵をおかし下さい。
PlayStateChangeのイベントでいけますよ
Private Sub AxWindowsMediaPlayer1_PlayStateChange(ByVal sender As System.Object, ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles AxWindowsMediaPlayer1.PlayStateChange
Select Case (e.newState)
Case WMPLib.WMPPlayState.wmppsStopped
'停止状態に入った時
Debug.Print("停止状態")
Case WMPLib.WMPPlayState.wmppsPlaying
'再生中に入った時
Debug.Print("再生中")
Case WMPLib.WMPPlayState.wmppsMediaEnded
'再生が全て終了した時
Debug.Print("再生が全て終了")
Case Else
Debug.Print(e.newState.ToString())
End Select
End Sub
はずしていたらすみませんが、
StatusChangeイベントでどうにかなるのではないでしょうか?
ステータスを拾って確認してみてください。
http://blog.goo.ne.jp/prizm326/e/63b6c34af773ebc3a970b54c182b83b...
StatusChangeイベントで下記のコードに書き換えた所
再生中の曲名のタイトルを取得できました。
=====================================
Private Sub AxWindowsMediaPlayer1_StatusChange(ByVal sender As Object, ByVal e As System.EventArgs) Handles AxWindowsMediaPlayer1.StatusChange
Dim media_info As WMPLib.IWMPMedia = AxWindowsMediaPlayer1.currentMedia
Label2.Text = AxWindowsMediaPlayer1.currentMedia.getItemInfo("Title")
End Sub
=====================================
PlayStateChangeイベントでのコードの書き換えにも
ただいま挑戦中です。
PlayStateChangeのイベントでいけますよ
Private Sub AxWindowsMediaPlayer1_PlayStateChange(ByVal sender As System.Object, ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles AxWindowsMediaPlayer1.PlayStateChange
Select Case (e.newState)
Case WMPLib.WMPPlayState.wmppsStopped
'停止状態に入った時
Debug.Print("停止状態")
Case WMPLib.WMPPlayState.wmppsPlaying
'再生中に入った時
Debug.Print("再生中")
Case WMPLib.WMPPlayState.wmppsMediaEnded
'再生が全て終了した時
Debug.Print("再生が全て終了")
Case Else
Debug.Print(e.newState.ToString())
End Select
End Sub
PlayStateChangeイベントで書き換えたところ
無事に再生が全て終了時に次に再生するファイルを
リストボックスで青色にアクティブにすることができました。
ありがとうございました。
↓私が書き換えたソースを添付いたします。
======================================
Private Sub AxWindowsMediaPlayer1_PlayStateChange(ByVal sender As System.Object, ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles AxWindowsMediaPlayer1.PlayStateChange
Select Case (e.newState)
Case WMPLib.WMPPlayState.wmppsStopped
' 停止状態に入った時()
Label2.Text = "停止状態"
Case WMPLib.WMPPlayState.wmppsPlaying
'再生中に入った時()
Label2.Text = "再生中"
Case WMPLib.WMPPlayState.wmppsMediaEnded
' 再生が全て終了した時()
Label2.Text = "再生が全て終了"
data1 = data1 + 1
ListBox1.SelectedIndex = ListBox1.SelectedIndex + data1
Case Else
Debug.Print(e.newState.ToString())
End Select
End Sub
======================================
PlayStateChangeイベントで書き換えたところ
無事に再生が全て終了時に次に再生するファイルを
リストボックスで青色にアクティブにすることができました。
ありがとうございました。
↓私が書き換えたソースを添付いたします。
======================================
Private Sub AxWindowsMediaPlayer1_PlayStateChange(ByVal sender As System.Object, ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles AxWindowsMediaPlayer1.PlayStateChange
Select Case (e.newState)
Case WMPLib.WMPPlayState.wmppsStopped
' 停止状態に入った時()
Label2.Text = "停止状態"
Case WMPLib.WMPPlayState.wmppsPlaying
'再生中に入った時()
Label2.Text = "再生中"
Case WMPLib.WMPPlayState.wmppsMediaEnded
' 再生が全て終了した時()
Label2.Text = "再生が全て終了"
data1 = data1 + 1
ListBox1.SelectedIndex = ListBox1.SelectedIndex + data1
Case Else
Debug.Print(e.newState.ToString())
End Select
End Sub
======================================