作者Dumkas (蓝天‧云‧狂想曲)
看板Visual_Basic
标题Re: [问题] 要如何插入音乐?
时间Mon Jun 2 00:27:55 2003
sndPlaySound的用法
宣告:由於API不属於VB内建范围,所以要宣告函数以便使用。
下面是用分行符号(_)分成为几行,其实也可以连成一整行写。
Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long
如果你想让整个程式都能使用这个函数,就把这个宣告放在一般模组里面,
如果只是让某个表单使用,可以放在表单的一般宣告区里,
但是必须用Private取代Public宣告。
这样在VB中就会有个函数叫做
sndPlaySound,是来自winmm.dll,也就是存放
Windows多媒体功能API的函式库。
两个引数:
lpszSoundName传入WAV档的完整路径字串,如"C:\Sample\Test.wav",不过为了
弹性起见,音效档通常放在和程式同目录或其子目录下,而代入资料就可以写
App.Path & "\Test.wav"之类的。(App.Path可以表示程式目前的目录)
如果代入
vbNullString,会切断目前拨放音效的动作。
uFlags传入拨放模式。这些本来是常数,不过好像常数还得另外引用,
所以我直接写数值(long数值)。
&H0(=0):同步拨放(放完音效才继续执行程式)
&H1(=1):非同步拨放(不会因为拨放程式而停下程式执行,最适合放音效)
&H8:重复拨放,必须和非同步拨放一起使用(用&符号连接)
&H10:如果有其他音效正在拨放,则取消这次的拨放要求,传回False
sndPlaySound还可以拨放系统内建的音效(就是布景主题设定的音效),
只要把档名换成特定的常数就可以,不过这我还没找到资料。
注意API函数都会有传回值,通常用来表示执行成功与否,像
这个是long,传回非0表示成功,传回0(=False)表示失败,不过
VB6可以忽略传回值而直接呼叫函数,又这函数成功率几乎100%,
所以也不用在意会不会失败,除非电脑没装音效卡之类的。
这样在VB中呼叫就是:
sndPlaySound 路径字串, 模式
或
Call sndPlaySound(路径字串, 模式)
如果找不到指定的音效(若是打错字),其实也不会发生什麽严重的错误,
但是会没有半点声音。
(有的API操作不慎不只当掉程式,甚至会当机)
***
恩,字数蛮多,不过我觉得这可以算是API最入门的了,
其实我也是边看书边动手做的啦,你自己实际做做,
应该就会懂了吧!
--
┌╤═╮╤╮ ╤╭╤═╮╤ ╭═╭╤═╮╭══╮ 杜
║║ ║║║ ║║║ ║╟═╯ ╟╧═╢╰╤═╮ 姆
└╧═╯╰╧═╯╧╰ ╧╧ ╰═╧ ╧─╧═╯ 卡
--
※ 发信站: 批踢踢实业坊(ptt.csie.ntu.edu.tw)
◆ From: 61.216.80.244