投稿者   () 投稿日時 2008/4/18 04:01:00
方法を見つけるのに大分時間がかかりましたが、 
一時ファイルを使用することで再生に成功しました。 
 
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer 
 
    Private FileName As String 
 
    Private Sub btnPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlay.Click 
 
        Dim asm As System.Reflection.Assembly = _ 
                    System.Reflection.Assembly.GetExecutingAssembly() 
 
        'リソースの名前 
        Dim resourceName As String = asm.GetName().Name + ".Test.mp3" 
 
        'リソースを読み込む 
        Dim strm As System.IO.Stream = _ 
            asm.GetManifestResourceStream(resourceName) 
        Dim buffer() As Byte = New Byte(strm.Length) {} 
        strm.Read(buffer, 0, CInt(buffer.Length)) 
        strm.Close() 
 
        '一時ファイルに書き込む(拡張子をmp3に変更する) 
        FileName = Replace(System.IO.Path.GetTempFileName(), "tmp", "mp3") 
        Dim fs As New System.IO.FileStream( _ 
            FileName, System.IO.FileMode.Create) 
        fs.Write(buffer, 0, CInt(buffer.Length)) 
        fs.Close() 
 
        'サウンドを再生する 
        Call mciSendString(String.Format("open ""{0}"" alias MySound", FileName), "", 0, 0) 
        Call mciSendString("play MySound", "", 0, 0) 
 
    End Sub 
 
    Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click 
 
        'サウンドを停止する 
        Call mciSendString("stop MySound", "", 0, 0) 
        Call mciSendString("close MySound", "", 0, 0) 
 
        '一時ファイルを削除する 
        IO.File.Delete(FileName) 
    End Sub 
 
temp様、考えてくださった皆様、 
ありがとうございました。