'**********************************************************************
'**模 块 名:GetResFile
'**说 明:将自定义资源中的文件释放出来
'**描 述:直接使用二进制写,不需要再指定文件大小了.
'**********************************************************************
Public Sub GetResFile(ByVal ResID As Long, ByVal FileName As String)
Dim bFile() As Byte
Dim Counter As Long
bFile = LoadResData(ResID, "CUSTOM") '将自定义资源中资源读入数组
If Dir(FileName) = "" Then '只有文件不存在时,才释放
Open FileName For Binary As #1
Put #1, , bFile
Close #1
End If
End Sub
把以上的代码保存为GetResFile.bas,并在工程中添加,然后把你的MP3以自定义资源的方式加入工程(资源文件编辑器里面)记下每首歌的资源ID,就可以使用以下语法释放:
GetResFile 101,app.path & "\1.mp3"
=============================================================================
Option Explicit
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Private Declare Function sndPlaySoundFromMemory Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long
Public Const SND_ASYNC = &H1&
Public Const SND_MEMORY = &H4&
Private Sub Command5_Click() 注释:播放 WAV 文件
Dim bArr() As Byte
bArr = LoadResData(102, "WAVE")
sndPlaySoundFromMemory bArr(0), SND_ASYNC Or SND_MEMORY
End Sub
-------------------------------------
MCIcommand 比较好使 别用plandsound
==========================================================================
这是VB2005
My.Computer.Audio.Play("xxx.wav")
快用2005把,别再用API调用自虐了
===========================================================================
'添加Command1 Command 与资源文件 .res
'资源文件选最右边田字型的那个图标
'使用Mcisendstring的歌曲路径不能含空格,例如Program Files 要改成Progra~1,歌曲名也不能带空格,例test 123.mp3要改成test123.mp3
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Public fname As String, AA As String, appdisk As String
Private Sub Form_Load()
Dim v
Dim byt() As Byte
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2 '窗体置屏幕中间
Command1.Caption = "播 放"
Command2.Caption = "停 止"
'appdisk = Trim(App.Path)
'If Right(appdisk, 1) <> "\" Then appdisk = appdisk & "\"
'fname = appdisk & "wf.mp3"
fname = "d:\wf.mp3" '把歌曲释放到d:\,因vb98在Pgrogram File...里面.
If Dir(fname) = "" Then
v = LoadResData(101, "CUSTOM")
byt = v
Open fname For Binary As #1
Put #1, 1, byt()
Close #1
End If
End Sub
Private Sub Command1_Click()
On Error Resume Next
fname = CommonDialog1.FileName
mciSendString "play " & fname, vbNullString, 0, 0
End Sub
Private Sub Command2_Click()
mciSendString "stop " & fname, vbNullString, 0, 0
End Sub