投稿者 葉月  (社会人) 投稿日時 2009/11/15 16:26:35
参考にしてほしかっただけなので、先のコードを書いただけでは動きません。
私も動かないことを明記しなかったのでお気になさらないでください。

動くサンプルを提示します。
私の作ったツールから必要な情報だけを摘出したつもりでしたが、
確認がいい加減なので余計なメソッドとか混ざっています。

サンプルのため本来は、こうした方がいいという事柄はコメントに説明があります。

■サンプル
>>>Form1.cs
以下のコントロールをForm1に貼り付けてください。
テキストボックス×1
ボタン×1

Public Class Form1

    ' エイリアス名 
    ' 今回はサンプルなので定数にしていますが、 
    ' 別途判断するようにすればさまざまなファイルを動的に再生可能です。 
    Private Const STR_ALIAS As String = "MySound"

    ' 再生されているかの確認。 
    ' 今回はサンプルなのでフィールドを使います。 
    ' 私の場合はフィールドを使わず、ボタン(再生・一時停止兼用)のテキストの内容から判断しています。 
    Private flgPlay As Boolean = False

    ' MCIコマンドを再生するクラスのインスタンス名 
    Private objMciCmd As MciCommand

    Public Sub New()

        ' この呼び出しは、Windows フォーム デザイナで必要です。 
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後で初期化を追加します。 
        objMciCmd = New MciCommand()
    End Sub

    ' ユーザーが再生中にプログラムを閉じる操作をした場合に必要。 
    Private Sub Form1_FormClosing(ByVal sender As System.ObjectByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
        If Me.flgPlay Then
            objMciCmd.PlayerStop(STR_ALIAS)
        End If
    End Sub

    ' 再生 
    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
        ' ファイル名 
        Dim strDir As String = Me.TextBox1.Text

        If Not flgPlay And System.IO.File.Exists(strDir) Then
            Me.flgPlay = True
            objMciCmd.Open(strDir)
            objMciCmd.Play(STR_ALIAS)
        End If
    End Sub

    ' 終了 
    Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button2.Click

        If flgPlay Then
            Me.flgPlay = False
            objMciCmd.PlayerStop(STR_ALIAS)
        End If
    End Sub
 
End Class