Private Sub Check2_Click()
If Check2.Value = 1 Then
'关闭AVI文件的声音
MMControl1.Silent = True
Else
'打开AVI文件的声音
MMControl1.Silent = False
End If
End Sub
Private Sub ComClose_Click()
MMControl1.Command = "close"
End Sub
Private Sub ComPlay_Click()
MMControl1.Command = "close"
DiaOpen.Filter = "Wav文件|*.wav|MIDI文件|*.mid|AVI文件|*.avi"
DiaOpen.ShowOpen
MMControl1.FileName = DiaOpen.FileName
MMControl1.Command = "open"
MMControl1.Command = "play"
LabFile.Caption = DiaOpen.FileName
End Sub
Private Sub Form_Load()
'初高灶始化
MMControl1.Visible = False
MMControl1.Notify = True
MMControl1.Shareable = False
MMControl1.TimeFormat = 0
End Sub
Private Sub Form_Unload(Cancel As Integer)
MMControl1.Command = "close"
End Sub
Private Sub MMControl1_StatusUpdate()
'计算文件总长度,单位为秒
LabLen.Caption = MMControl1.Length / 1000
'动态显示蠢卜当前的播放位置
LabPlay.Caption = MMControl1.Position / 1000
End Sub
Private Sub MMControl1_Done(NotifyCode As Integer)
'如果文件播放结束
If MMControl1.Position = MMControl1.Length Then
'倒回止文件的起点
MMControl1.Command = "prev"
'如果选择了自动重复带念穗播放
If Check1.Value = 1 Then
MMControl1.Command = "play"
End If
End If
End Sub
使用一个多媒体功能,通过一个VB程序来运行WAV文件是一件轻而易举棚祥的事情。然而,系统必须为这一 *** 作而安装一个声卡。你所需要的API函数称为PlaySound,以下为该函数的声明:
PublicDeclareFunctionPlaySoundLib"winmm.dll"_
Alias"PlaySoundA"(ByVallpszNameAsString,_
为了当前的需要,必须需要两个标记。它们是:
SND_ASYNC(value=1):以异步方式运行,这意味着当播放声音时函数在运行。
SND_FILENAME(value=&H20000):第一个变量为一个文件名。
所以,以下代码播放了DingDong.wav文件中的声音:
PlaySound"dingdong.wav",CLng(0),_
SND_ASYNCOrSND_FILENAME
当运行在一个程序中运行音频文件时,还有其他两点值得注意。第一,你必须确保一个特定的音频文件存在,否则会产生错误。这一过程可以用以下一个简单的函链衡搏数来完成:
PublicFunctionFileExists(FullFileName)AsBoolean
’Passedafilename(withpath)returns
’Trueifthefileexists,Falseifnot.
Dimss=dir(FullFileName) Ifs=""Then
FileExists=FalseElseFileExists=TrueEndIfEndFunction
第二,程序必须具有为用户提供关闭声音的选择设置。这一过程可以通过使用一个比如gProgramSoundsEnabled的全局布尔变量来实现。
我的方法是在一个函数中同时处理这些需要,如下所示。(以下代码假设音频拦悔文件已经存放在程序文件中)
PrivateSubPlaySoundX(filenameAsString)
’Ifsoundisenabledandfilenameexists,
’playthespecifiedsound.
filename=App.path&"\"&filename
IfFileExists(filename)AndgProgramSoundsEnabledThen
PlaySoundfilename,CLng(0),SND_ASYNCOrSND_FILENAMEEndIfEndSub正确使用这些函数,程序就可以播放任何Wave文件,如下所示:
从VB程序播放音频文件的其他方法包括窗体上的多媒体控制。当你不需要这些控制特性时,以上讲述的技术已经足够,并且很容易掌握。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)