Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
リソースとして埋め込まれたmp3の再生
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=2323#CommentId18915
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
鍵
 ()
投稿日時
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様、考えてくださった皆様、
ありがとうございました。