OpenFileDialogを使いmp3をmciSendStringで再生したいのですが・・・

タグの編集
投稿者 やーば君  (高校生) 投稿日時 2009/4/1 09:08:45
今現在、簡単なプレイヤーを作ろうと思っています。いろんなサイトを回りmciSendStringを使って音楽を再生したりすることを知りました。見よう見まねで作り外見、停止、一時停止などほとんど完成したのですがどうしてもひとつだけわからないものがあります。
それはOpenFileDialogを使って音楽ファイルを選んで(細かい設定等はしてあります。)それを開くやりかたです。mciでは再生、停止などの操作にエイリアスを使ってするとのことなのでまずは選んだファイルのフルパスが随時分らないといけません。
しかしOFDではユーザーが毎度毎度ファイルを選んで再生するのできまった場所、つまりC:\test.mp3などは使えないのです。文がおかしくなり分かりにくくすいません。
ようは、OFDを使ってファイルを選んだときにどうやってmciで再生するかが知りたいのです。またそれを後々一時停止、停止等をするときの設定方法も教えていただければ嬉しいです。
教えてgooやyahoo知恵袋などにも投稿しましたが返答が一切ありませんでした。最後の頼みの綱としてコチラに投稿させていただきました。どうぞよろしくお願いします。
投稿者 やーば君  (高校生) 投稿日時 2009/4/1 09:11:09
すいません。VBのバージョンを書き忘れていました。
自分はVisualBasic2008を使っています。
失礼いたしました。
投稿者 (削除されました)  () 投稿日時 2009/4/1 18:36:26
(削除されました)
投稿者 ウッチー  (小学生) 投稿日時 2009/4/1 18:57:40
↑間違えたwww
こんなもんでいかがでしょうか
(Button1 = ファイルを開く,Button2 = 再生,Button3 = 一時停止,Button4 = 停止,Button5 = 一時停止解除)
http://homepage1.nifty.com/rucio/main/dotnet/Samples/SmpleCnt.htmのマルチメディアを参照のこと。
    Private Declare Function mciSendStringB Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As StringByVal lpstrReturnString As StringByVal uReturnLength As IntegerByVal hwndCallback As IntegerAs Integer
    Dim FileN As String
    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            FileN = OpenFileDialog1.FileName
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button2.Click
        Call mciSendStringB(String.Format("open ""{0}"" alias MySound", FileN), "", 0, 0)
        Call mciSendStringB("play MySound""", 0, 0)
    End Sub

    Private Sub Button4_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button4.Click
        Call mciSendStringB("stop MySound""", 0, 0)
        Call mciSendStringB("close MySound""", 0, 0)
    End Sub

    Private Sub Button3_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button3.Click
        Call mciSendStringB("pause MySound""", 0, 0)
    End Sub

    Private Sub Button5_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button5.Click
        Call mciSendStringB("resume MySound""", 0, 0)
    End Sub
投稿者 (削除されました)  () 投稿日時 2009/4/2 08:27:21
(削除されました)
投稿者 やーば君  (高校生) 投稿日時 2009/4/2 08:28:53
ありがとうございます。教えていただいたコードをいろいろと変えたら無事できました。