yunfeng 发表于 2009-8-2 13:50:47

VB之给你的程序加背景音乐

好多人都想给自己的程序加个背景音乐,但又不想附带个音乐文件,而想集成在一个程序中.
那怎么实现呢?呵呵,简单的给大家讲一下.
当然方法很多,以下仅是我个人喜欢用的方法.
1.添加音乐文件
由于不想附带音乐文件,所以只能把音乐文件集成在程序中,那就是添加资源文件
首先,添加资源编辑器,然后把你所要加的音乐文件添加到资源中,接着保存即可!
2.释放音乐文件
要想播放音乐,当然得把音乐文件给释放出来,然后再去播放,(由于我不知道怎么直接播放资源中的音乐文件,所以只能用笨办法,呵呵) 程序代码Public Function SaveFileFromRes(vntResourceID As Variant, sType As String, sFileName As String) As Boolean
Dim bytImage() As Byte
Dim iFileNum As Integer
On Error GoTo SaveFileFromRes_Err
SaveFileFromRes = True

bytImage = LoadResData(vntResourceID, sType)
iFileNum = FreeFile

Open sFileName For Binary As iFileNum
    Put #iFileNum, , bytImage
Close iFileNum
Exit Function
SaveFileFromRes_Err:
SaveFileFromRes = False: Exit Function
End Function
程序代码
Private Sub Form_Load()
SaveFileFromRes 101, "CUSTOM", "C:\WINDOWS\system32\1.mid"

End Sub


3.接着就是去播放你的音乐文件了
我的思路是用WMP控件完成
添加个WMP控件,由于是背景音乐,所以不能让别人看见你的播放器
故把WMP的可见属性改为假
然后在Form_Load事件中加下面这行播放代码即可 程序代码WindowsMediaPlayer1.URL = "C:\WINDOWS\system32\1.mid"OK,大致的过程就完成了,启动你的程序,应该就有背景音乐了吧.HOHO~
下面接着来优化下代码:
优化一:让背景音乐循环播放 程序代码
Private Sub WindowsMediaPlayer1_PlayStateChange(ByVal NewState As Long)
If NewState = 1 Then
WindowsMediaPlayer1.Controls.play
End If
End Sub

优化二:
退出程序时把释放的音乐文件删除 程序代码
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
Kill "C:\WINDOWS\system32\1.mid"
End Sub
这样,就差不多了,大功告成!

附件提供个完整的工程文件!

wan 发表于 2009-8-5 18:06:44

刚好利用一下这个代码,感谢,嘻嘻
页: [1]
查看完整版本: VB之给你的程序加背景音乐