投稿者 よっしー26  (社会人) 投稿日時 2017/3/31 23:32:18
まりもんさん、さばみそ煮さん、ご回答ありがとうございます。

とりあえず、まりもんさんに教えて頂いたHPを参考にコードを下記のように変更したのですが、
mp3ファイルを再生し終えてもメッセージが表示されません。

どのようにすれば、再生が終わったらメッセージを表示できるのでしょうか?


Const WM_MCINOTIFY As Integer = &H9B3 'mciSendString の処理終了を表す定数   ←追加
Const MCI_NOTIFY_SUCCESSFUL As Integer  = &H1 '処理成功を表す定数   ←追加

Private Sub Button1_Click(ByVal sender As Object, _
         ByVal e As EventArgs) Handles Button1.Click

   '再生するファイル名
   Dim fileName As String = "C:\music.mid"

   Dim cmd As String

    'ファイルを開く
   cmd = "open """ + fileName + """ alias " + aliasName
   If mciSendString(cmd, "", 0, 0) <> 0 Then    ←変更 
     Return
   End If '再生する
   cmd = "play " + aliasName + " notify"   ←変更
   mciSendString(cmd, "", 0, Me.Handle.ToInt32)   ←変更

End Sub


以下を追加しました。

Protected Overrides sub WndProc(ByRef m As Message)
   If m.Msg = WM_MCINOTIFY AndAlso m.WParam.ToInt32 = MCI_NOTIFY_SUCCESSFUL Then
     MsgBox("再生終了")
   End If
   
   MyBase.WndProc(m)
   
End Sub