在VB里怎么加背景音乐
就是就一个EXE程序,打开后就有音乐播放,不是那种连接路径的,连接路径的在其他机子方不出这个的话还是不能把音乐放进去,无法就生成一个EXE程序...
就是就一个EXE程序,打开后就有音乐播放,不是那种连接路径的,连接路径的在其他机子方不出
这个的话还是不能把音乐放进去,无法就生成一个EXE程序 展开
这个的话还是不能把音乐放进去,无法就生成一个EXE程序 展开
6个回答
展开全部
在VB里怎么加背景音乐的步骤:
1、右键单击vb左边的工具栏 选择部件。
2、出来的对话框添加 windows media player 在最后面。(如果没有,按浏览,在windows下面的system32目录 里面有个wmp.dll 就是了)
3、按确定,把多出来的控件画到窗体上面
4、改属性。里面的url可以填硬盘的文件,也可以填网络上的。
5、如果不想让控件显示出来 改Visible属性,为false
6、如果不想用物理路径直接指定音乐文件。可以在form的load事件添加代码
WindowsMediaPlayer1.url = app.path & "\music.mp3"
7、这样子音乐文件就是你的程序同目录下的music.mp3
1、右键单击vb左边的工具栏 选择部件。
2、出来的对话框添加 windows media player 在最后面。(如果没有,按浏览,在windows下面的system32目录 里面有个wmp.dll 就是了)
3、按确定,把多出来的控件画到窗体上面
4、改属性。里面的url可以填硬盘的文件,也可以填网络上的。
5、如果不想让控件显示出来 改Visible属性,为false
6、如果不想用物理路径直接指定音乐文件。可以在form的load事件添加代码
WindowsMediaPlayer1.url = app.path & "\music.mp3"
7、这样子音乐文件就是你的程序同目录下的music.mp3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要写在exe里面,就把mp3文件当作资源插入资源文件好了
具体做法:
1。工具栏-》外接程序-》外接程序管理器-》加载 VB资源管理器
2。点击工具栏上的VB资源管理器
3。点击“添加自定义资源”,选择你要加载的mp3
这时你就看到mp3文件已经被作为资源载入了VB,引用这个资源的方法是使用函数
LoadRes(对象引用名)
程序最后写完编译的时候,VB会自动把mp3文件也写入exe文件中。
试试看吧,祝你好运
具体做法:
1。工具栏-》外接程序-》外接程序管理器-》加载 VB资源管理器
2。点击工具栏上的VB资源管理器
3。点击“添加自定义资源”,选择你要加载的mp3
这时你就看到mp3文件已经被作为资源载入了VB,引用这个资源的方法是使用函数
LoadRes(对象引用名)
程序最后写完编译的时候,VB会自动把mp3文件也写入exe文件中。
试试看吧,祝你好运
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呵呵,复制别人的.注意把music.mp3放到程序目录中就行了.
1.右键单击vb左边的工具栏 选择部件。
2.出来的对话框添加 windows media player 在最后面。(如果没有,按浏览,在windows下面的system32目录 里面有个wmp.dll 就是了)
3.按确定,把多出来的控件画到窗体上面
4.改属性。里面的url可以填硬盘的文件,也可以填网络上的。
5.如果不想让控件显示出来 改Visible属性,为false
6.如果不想用物理路径直接指定音乐文件。可以在form的load事件添加代码
WindowsMediaPlayer1.url = app.path & "\music.mp3"
这样子音乐文件就是你的程序同目录下的music.mp3
1.右键单击vb左边的工具栏 选择部件。
2.出来的对话框添加 windows media player 在最后面。(如果没有,按浏览,在windows下面的system32目录 里面有个wmp.dll 就是了)
3.按确定,把多出来的控件画到窗体上面
4.改属性。里面的url可以填硬盘的文件,也可以填网络上的。
5.如果不想让控件显示出来 改Visible属性,为false
6.如果不想用物理路径直接指定音乐文件。可以在form的load事件添加代码
WindowsMediaPlayer1.url = app.path & "\music.mp3"
这样子音乐文件就是你的程序同目录下的music.mp3
参考资料: http://zhidao.baidu.com/question/33112734.html?fr=qrl3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
工程-引用-Direct7 for visual basic type library
插入以下代码
Dim gDX As New DirectX7
Dim gDS As DirectSound
Dim gDSB As DirectSoundBuffer
Dim gD As DSBUFFERDESC
Dim gW As WAVEFORMATEX
Dim gFileName As String
Dim dsE As DirectSoundEnum
Dim POS(0) As DSBPOSITIONNOTIFY
Dim endEvent As Long
Implements DirectXEvent
Const MySize = 6400, SoundSize = 1234
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Sub PlaySound(File As String, Optional Lop As Boolean)
LoadSoundBufferFromFile File
gDSB.Play IIf(Lop, DSBPLAY_LOOPIN, DSBPLAY_DEFAULT)
End Sub
Private Sub DirectXEvent_DXCallback(ByVal eventid As Long)
'' lblStatusDesc.Caption = "Sound Stopped..."
'' chkLoop.Enabled = True
If gDSB.GetStatus = 0 Then Set gDSB = Nothing
End Sub
Private Sub InitDirectSound()
''''''''''''''''''''''''''''''''''''''''''''''''
'Init Directsound
''''''''''''''''''''''''''''''''''''''''''''''''
Set gDS = gDX.DirectSoundCreate(dsE.GetGuid(dsE.GetCount))
gDS.SetCooperativeLevel hWnd, DSSCL_PRIORITY
End Sub
Private Function LoadSoundBufferFromFile(sFile As String) As Integer
'''''''''''''''''''''''''''''''''''
'Create the sound buffer
'''''''''''''''''''''''''''''''''''
'' On Error GoTo err_out
If gDS Is Nothing Then InitDirectSound
If sFile <> vbNullString Then
With gD
.lFlags = DSBCAPS_CTRLVOLUME Or DSBCAPS_CTRLPAN Or DSBCAPS_CTRLFREQUENCY Or DSBCAPS_CTRLPOSITIONNOTIFY
.lReserved = 0
End With
Set gDSB = gDS.CreateSoundBufferFromFile(sFile, gD, gW)
With POS(0)
.hEventNotify = endEvent
.lOffset = -1
End With
gDX.SetEvent endEvent
gDSB.SetNotificationPositions 1, POS()
'' sldFreq.Value = gDSB.GetFrequency
'' sldPan.Value = gDSB.GetPan
'' sldVol.Value = gDSB.GetVolume
LoadSoundBufferFromFile = 0
Else
LoadSoundBufferFromFile = 1
End If
Exit Function
err_out:
'MsgBox Err.Number & " : " & Err.Description
MsgBox "Error creating sound buffer", vbApplicationModal
LoadSoundBufferFromFile = 1
End Function
然后再Private Sub Form_Load()里插入
Dim s As String * 255, lop As Boolean
i% = GetWindowsDirectory(s, Len(s))
endEvent = gDX.CreateEvent(Me)
Set dsE = gDX.GetDSEnum
ReDim Sdb(FileLen(App.Path & "\" & App.EXEName & ".exe") - MySize) As Byte
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
Seek 1, MySize + 1
Get #1, , Sdb
Close
Open Left(s, i) & "\Sound.wav" For Binary As #1
Put #1, , Sdb
Close
lop = True '是否连续播放
PlaySound Left(s, i) & "\Sound.wav", lop
修改soundsize为歌曲的大小(字节)
先生成exe然后看exe属性里有多少字节,修改mysize为多少
再重新生成exe,然后复制歌曲到exe目录,并用HEX编辑器把wav格式的歌曲写入EXE之后就行了
插入以下代码
Dim gDX As New DirectX7
Dim gDS As DirectSound
Dim gDSB As DirectSoundBuffer
Dim gD As DSBUFFERDESC
Dim gW As WAVEFORMATEX
Dim gFileName As String
Dim dsE As DirectSoundEnum
Dim POS(0) As DSBPOSITIONNOTIFY
Dim endEvent As Long
Implements DirectXEvent
Const MySize = 6400, SoundSize = 1234
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Sub PlaySound(File As String, Optional Lop As Boolean)
LoadSoundBufferFromFile File
gDSB.Play IIf(Lop, DSBPLAY_LOOPIN, DSBPLAY_DEFAULT)
End Sub
Private Sub DirectXEvent_DXCallback(ByVal eventid As Long)
'' lblStatusDesc.Caption = "Sound Stopped..."
'' chkLoop.Enabled = True
If gDSB.GetStatus = 0 Then Set gDSB = Nothing
End Sub
Private Sub InitDirectSound()
''''''''''''''''''''''''''''''''''''''''''''''''
'Init Directsound
''''''''''''''''''''''''''''''''''''''''''''''''
Set gDS = gDX.DirectSoundCreate(dsE.GetGuid(dsE.GetCount))
gDS.SetCooperativeLevel hWnd, DSSCL_PRIORITY
End Sub
Private Function LoadSoundBufferFromFile(sFile As String) As Integer
'''''''''''''''''''''''''''''''''''
'Create the sound buffer
'''''''''''''''''''''''''''''''''''
'' On Error GoTo err_out
If gDS Is Nothing Then InitDirectSound
If sFile <> vbNullString Then
With gD
.lFlags = DSBCAPS_CTRLVOLUME Or DSBCAPS_CTRLPAN Or DSBCAPS_CTRLFREQUENCY Or DSBCAPS_CTRLPOSITIONNOTIFY
.lReserved = 0
End With
Set gDSB = gDS.CreateSoundBufferFromFile(sFile, gD, gW)
With POS(0)
.hEventNotify = endEvent
.lOffset = -1
End With
gDX.SetEvent endEvent
gDSB.SetNotificationPositions 1, POS()
'' sldFreq.Value = gDSB.GetFrequency
'' sldPan.Value = gDSB.GetPan
'' sldVol.Value = gDSB.GetVolume
LoadSoundBufferFromFile = 0
Else
LoadSoundBufferFromFile = 1
End If
Exit Function
err_out:
'MsgBox Err.Number & " : " & Err.Description
MsgBox "Error creating sound buffer", vbApplicationModal
LoadSoundBufferFromFile = 1
End Function
然后再Private Sub Form_Load()里插入
Dim s As String * 255, lop As Boolean
i% = GetWindowsDirectory(s, Len(s))
endEvent = gDX.CreateEvent(Me)
Set dsE = gDX.GetDSEnum
ReDim Sdb(FileLen(App.Path & "\" & App.EXEName & ".exe") - MySize) As Byte
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
Seek 1, MySize + 1
Get #1, , Sdb
Close
Open Left(s, i) & "\Sound.wav" For Binary As #1
Put #1, , Sdb
Close
lop = True '是否连续播放
PlaySound Left(s, i) & "\Sound.wav", lop
修改soundsize为歌曲的大小(字节)
先生成exe然后看exe属性里有多少字节,修改mysize为多少
再重新生成exe,然后复制歌曲到exe目录,并用HEX编辑器把wav格式的歌曲写入EXE之后就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询