只播放一个吗?不如几个吧!!!
在VB中用API实现多媒体主要是调用Windows的mmsystem.dll库。以下为调用API的声明(这些代码放在程序的声明部分中):
′播放CD和AVI所需要的声明。
Declare Function mciSendString Lib ″MMSYSTEM″(ByVal lpstrCommand as String,ByVal lpstrReturnStr as Any,By Val wRetumLen as Integer,ByVal hCallBack as Integer) as Long
′播放WAV所需要的声明
Declare Function sndPlaySound Lib ″MMSYSTEM.DLL″(ByVal lpszSoundName as String,ByVal wF1ags as Integer) as Integer
′检测声卡所需要的声明
Declare Function auxGetNaumDevs Lib ″MMSYSTEM″()as Integer
′所用到的全局变量声明
Global Const SND_SYNC=&H0000 ′播放WAV用到的全局变量
Global Const SND_ASYNC=&-H0001 ′播放WAV用到的全局变量
Global Const SND_NODEFAULT=&H0002 ′播放WAV用到的全局变量
Global Const SND_LOOP=&H0008 ′播放WAV用到的全局变量
Global Const SND_NOSTOP=&-H0010 ′播放WAV用到的全局变量
′接下来是调用这些声明
Function auxTest()as Boolean
Dim i As Integer
i=auxGetNumDevs()
If i>0 Then
AuxTest=True ′如果有声卡则返回真
Exit Function
Else
AuxTest=False ′如果未检测到声卡则返回假
Exit Function
Else
AuxTest=False ′如果未检测到声卡则返回假
Exit Function
End If
End Function
2.播放CD的源代码
Sub PlayCD(b As Integer)
′ b为所播的音轨号
Dim a As Long
a=mciSendString(″open cdaudio alias cd wait″,0&,0,0) '初始化驱动
a=mciSendString(″set cd time format tmsf″,0&,0,0)
a=mciSendString(″play cd from″& Str(b),0&,00) ′播放音轨
End Sub
3.播放AVI的源代码
Sub playAVI(AVIFile As String)
Dim RVal as Long
AVIFile=″play″+AVIFile+″fullscreen″ ′全屏幕播放AVI文件
RVal=mciSendString(AVIFile,0&,0,0&)
End Sub
4.播放WAV的源代码
Sub playWAV(WAVFile As String)
Dim Flag as Integer
Dim a as Integer
wFlag=SND_ASYNC or SND_NODEFAULT
a=sndPlaySound(WAVFile,Flag)
End Sub
以上程序是我在调用多媒体时所常用的模块,你只需将上面的模块在程序中直接调用即可。
在VB中用API实现多媒体主要是调用Windows的mmsystem.dll库。以下为调用API的声明(这些代码放在程序的声明部分中):
′播放CD和AVI所需要的声明。
Declare Function mciSendString Lib ″MMSYSTEM″(ByVal lpstrCommand as String,ByVal lpstrReturnStr as Any,By Val wRetumLen as Integer,ByVal hCallBack as Integer) as Long
′播放WAV所需要的声明
Declare Function sndPlaySound Lib ″MMSYSTEM.DLL″(ByVal lpszSoundName as String,ByVal wF1ags as Integer) as Integer
′检测声卡所需要的声明
Declare Function auxGetNaumDevs Lib ″MMSYSTEM″()as Integer
′所用到的全局变量声明
Global Const SND_SYNC=&H0000 ′播放WAV用到的全局变量
Global Const SND_ASYNC=&-H0001 ′播放WAV用到的全局变量
Global Const SND_NODEFAULT=&H0002 ′播放WAV用到的全局变量
Global Const SND_LOOP=&H0008 ′播放WAV用到的全局变量
Global Const SND_NOSTOP=&-H0010 ′播放WAV用到的全局变量
′接下来是调用这些声明
Function auxTest()as Boolean
Dim i As Integer
i=auxGetNumDevs()
If i>0 Then
AuxTest=True ′如果有声卡则返回真
Exit Function
Else
AuxTest=False ′如果未检测到声卡则返回假
Exit Function
Else
AuxTest=False ′如果未检测到声卡则返回假
Exit Function
End If
End Function
2.播放CD的源代码
Sub PlayCD(b As Integer)
′ b为所播的音轨号
Dim a As Long
a=mciSendString(″open cdaudio alias cd wait″,0&,0,0) '初始化驱动
a=mciSendString(″set cd time format tmsf″,0&,0,0)
a=mciSendString(″play cd from″& Str(b),0&,00) ′播放音轨
End Sub
3.播放AVI的源代码
Sub playAVI(AVIFile As String)
Dim RVal as Long
AVIFile=″play″+AVIFile+″fullscreen″ ′全屏幕播放AVI文件
RVal=mciSendString(AVIFile,0&,0,0&)
End Sub
4.播放WAV的源代码
Sub playWAV(WAVFile As String)
Dim Flag as Integer
Dim a as Integer
wFlag=SND_ASYNC or SND_NODEFAULT
a=sndPlaySound(WAVFile,Flag)
End Sub
以上程序是我在调用多媒体时所常用的模块,你只需将上面的模块在程序中直接调用即可。
解决方案 »
- 为什么会出现From子句错误呢??
- ActiveX里,如何得到调用者的资料?
- vb里怎么调用用Microsoft Scripts Host脚本写的“Hello.vbs”程序?
- 谁能帮我写一段随机抽取数的代码?
- 请问有没有一个对图象中一点取RGB 色的函数(在线等)50分
- 数据保存到数据库为什么去不掉空格?用trim()也不行
- 如何得到IE的SESSIONID?
- 在Treeview 中加载结点时,如要添加仅万个子结点,如何做到最快?
- 有人传给我一个带宏命令的excel 在他的电脑上能运行 但是在我的电脑上却提示内存溢出
- 控件被动态删除后,程序中如何识别它已经被删除?急急急
- 如果在vb6.0中使用acess2000
- vb修改数据记录的问题?急!
以下是一个简单的例程:
Option Explicit
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Const SND_ASYNC = &H1 ' 异步播放
Private Const SND_SYNC = &H0 ' 同步播放 (缺省) Private Sub Command1_Click()
Dim SoundFile As String, Result As Long
SoundFile = "c:\Windows\Media\chord.wav"
Result = sndPlaySound(SoundFile, SND_ASYNC)
End Sub 其中SND_ASYNC常量用于在选择播放声音的同时,允许继续进行其他工作;
SND_SYNC常量用于同步播放声音,直到声音播放结束才允许进行其他工作。
SndPlaysound函数提供了播放声音文件的简单方法。我估计它只能播放WAV文件。
使用方法很简单∶
函数声明∶
Private Declare Function sndPlaySound& Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) 其中∶lpszSoundName ---需要播放的的声音文件(附加明为WAV)
uFlags ---播放声音的方式。一般采用以下两种常量
1,Const SND_SYNC& = &H0
用于同步播放声音,至到声音播放结束,才允许进行其他工作。 2,Const SND_ASYNC& = &H1
在选择播放声音的同时,允许继续进行其他工作。 返回值∶long型。播放成功返回1。其他情况,肯定不是1(废话)。
凡例∶(以下代码用于同步播放d:\vbplay\sound.wav文件。)
Dim SoundFileName As String,dl as long
SoundFileName = "d:\vbplay\sound.wav"
dl& = sndPlaySound(SoundFileName, SND_SYNC)
此函数,在你想播放声音的时候,均可调用,效果极佳。不需要进行任何前期准备工作。
如果你只是想播放WAV类文件,最好采取此方法,而不要采用媒体播放器控件。
PlaySound "c:\123.WAV", 0, 0
End Sub