1262937189 下記のサンプルコードを元にVisual Basic 2008で動画を

連続再生するメディアプレイヤーを
作成しています。

以前ご質問させていただいて(http://q.hatena.ne.jp/1262872069)
AxWindowsMediaPlayerコントロールで"nagai.mpg"の再生が終わると"nagai.mpg"
再生が終わるプログラムの作成ができました。

その後、"nagai.mpg"の再生が終わり"nagai2.mpg"を読み込んだときに
リストボックスの"nagai2.mpg"を青色にアクティブ(詳しくは添付画像ご参照)に
するようなプログラムを作成したく調べております。

AxWindowsMediaPlayerコントロールで動画の再生が終わったことを
検知するようなプログラムの書き方などがわかる方
お知恵をおかし下さい。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2010/01/08 20:43:17
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:heke2mee No.2

回答回数162ベストアンサー獲得回数43

ポイント75pt

http://q.hatena.ne.jp

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

id:absence55

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

======================================

2010/01/08 20:41:48

その他の回答1件)

id:HALSPECIAL No.1

回答回数407ベストアンサー獲得回数86

ポイント75pt

はずしていたらすみませんが、

StatusChangeイベントでどうにかなるのではないでしょうか?


ステータスを拾って確認してみてください。

http://blog.goo.ne.jp/prizm326/e/63b6c34af773ebc3a970b54c182b83b...

id:absence55

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イベントでのコードの書き換えにも

ただいま挑戦中です。

2010/01/08 18:15:17
id:heke2mee No.2

回答回数162ベストアンサー獲得回数43ここでベストアンサー

ポイント75pt

http://q.hatena.ne.jp

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

id:absence55

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

======================================

2010/01/08 20:41:48
  • id:HALSPECIAL
    HALSPECIAL 2010/01/08 17:49:23
    間違えました。
    PlayStateChangeイベントでどうでしょう。

    以下、C#のサンプルですが、参考になりますか?
    http://blog.livedoor.jp/tpot/archives/51452779.html

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません