投稿者 葉月  (社会人) 投稿日時 2009/11/22 08:53:14
winvisさん、こんばんは。
前に私が作ったサンプルを参考に、以下のメソッドを追加/編集してください。

■サンプルのあるURL
http://rucio.groupsite.jp/commu/ThreadDetail.aspx?ThreadId=9451

コメントに書かれている『追加』はサンプルを参考に新規作成し、
『編集』は元が存在するのでサンプルを参考に中身を変更してください。

それから、サンプルの修正が終わり無事に動いたら――
Private flgPlay As Boolean = False
のフィールドは不要になるので、いらなくなるよう書き換えてください。


>>>Form1.vb(編集/追加)
     ' イベントの編集。終了 
    Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button2.Click
        Me.PlayerStop()
    End Sub

    ''' <summary> 
    ''' メソッドの追加。再生状態のときに、プレイヤーを終了する。 
    ''' </summary> 
    Private Sub PlayerStop()
        ' 再生中 
        Const STRING_PLAY_STATE_PLAYING As String = "playing"

        ' 再生状態 
        Dim strMode As String = objMciCmd.PlayStateResult(STR_ALIAS)
        Console.WriteLine(strMode)

        If strMode.Equals(STRING_PLAY_STATE_PLAYING) Then
            objMciCmd.PlayerStop(STR_ALIAS)
        End If
    End Sub




>>>MciCommand.vb(追加)
    ''' <summary> 
    ''' 追加。再生状態を取得する。 
    ''' </summary> 
    ''' <param name="strAlias">エイリアス名</param> 
    ''' <returns>再生状態</returns> 
    Public Function PlayStateResult(ByVal strAlias As StringAs String
        ' バッファー 
        Dim strBuf As String = New String(Chr(0), 255)
        ' 再生状態 
        Dim strMode As String = String.Empty
        ' コマンド 
        Dim strCmd As String = String.Empty

        strCmd = String.Concat("status ", strAlias, " mode")
        Call mciSendString(strCmd, strBuf, strBuf.Length, 0)
        strMode = strBuf.Replace(Chr(0), "")

        Return strMode
    End Function