版权所有:Nicrosoft
文章来源:东日制作室
转载请与作者联系
我们有时会希望为自己的程序增加音效,例如警告声等,这就需要播放WAV文件。较简单的做法,我们可以使用多媒体控件(VB和Delphi都提供了MCI控件)来完成,但这样做无疑会增加系统负担和使程序体积增大(使用OCX的话尤其明显)。如果我们的程序并非一个多媒体程序而仅仅是用来播放音效的话,就更不划算了。有没有更理想的方法呢?答案是肯定的,Windows已经为我们提供了一个关于多媒体处理的动态连接库WINMM.DLL(旧版本为MMSYSTEM.DLL),通过调用它所提供的API函数,我们就可以使用MCI指令进行多媒体方面的操作了。
让我们先来了解一下什么是MCI指令,MCI的全称是Media Control Interfase(媒体控制接口)。实际上MCI是一个高级的函数调用接口,我们可以把它看作是一个解释器,通过它,我们就可以直接和外部音频或视频设备打交道了。
接下来,就需要了解一下需要用到的API和MCI指令。有三个与MCI有关的API,它们是:
mciSendString(),mciExecute()和mciGetErrorString()。
mciSendString函数的功能是传送指令字符串给MCI,mciExecute的功能和mciSendString一样,不同的是当发生错误时mciExecute会弹出对话框显示错误信息。mciGetErrorString的功能是将MCI错误代码转换为字符串。现在假设我们的编程环境是VB或Delphi,下面就在这两种环境的情况中介绍其使用方法。
在VB中,调用API函数必须先进行声明,它们的格式分别为:
Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand
As String) As Long
Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal
lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As
Long, ByVal hwndCallback As Long) As Long
Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA"
(ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
在Delphi中相对较简单,由于Delphi已经将多媒体相关的API声明预编译在MMSYSTEM.DCU文件中,所以我们只需要在单元的Uses语句后加上 mmsystem即可在本单元中使用上述三个API函数了。 巧 巧 读 书:http://www.qqread.com/vb/d920559010.html
更多内容请看多媒体应用解决方案、Java编程开发手册专题,或进入讨论组讨论。
文章来源:东日制作室
转载请与作者联系
我们有时会希望为自己的程序增加音效,例如警告声等,这就需要播放WAV文件。较简单的做法,我们可以使用多媒体控件(VB和Delphi都提供了MCI控件)来完成,但这样做无疑会增加系统负担和使程序体积增大(使用OCX的话尤其明显)。如果我们的程序并非一个多媒体程序而仅仅是用来播放音效的话,就更不划算了。有没有更理想的方法呢?答案是肯定的,Windows已经为我们提供了一个关于多媒体处理的动态连接库WINMM.DLL(旧版本为MMSYSTEM.DLL),通过调用它所提供的API函数,我们就可以使用MCI指令进行多媒体方面的操作了。
让我们先来了解一下什么是MCI指令,MCI的全称是Media Control Interfase(媒体控制接口)。实际上MCI是一个高级的函数调用接口,我们可以把它看作是一个解释器,通过它,我们就可以直接和外部音频或视频设备打交道了。
接下来,就需要了解一下需要用到的API和MCI指令。有三个与MCI有关的API,它们是:
mciSendString(),mciExecute()和mciGetErrorString()。
mciSendString函数的功能是传送指令字符串给MCI,mciExecute的功能和mciSendString一样,不同的是当发生错误时mciExecute会弹出对话框显示错误信息。mciGetErrorString的功能是将MCI错误代码转换为字符串。现在假设我们的编程环境是VB或Delphi,下面就在这两种环境的情况中介绍其使用方法。
在VB中,调用API函数必须先进行声明,它们的格式分别为:
Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand
As String) As Long
Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal
lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As
Long, ByVal hwndCallback As Long) As Long
Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA"
(ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
在Delphi中相对较简单,由于Delphi已经将多媒体相关的API声明预编译在MMSYSTEM.DCU文件中,所以我们只需要在单元的Uses语句后加上 mmsystem即可在本单元中使用上述三个API函数了。 巧 巧 读 书:http://www.qqread.com/vb/d920559010.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 多媒体应用解决方案 (5936篇文章)
- Java编程开发手册 (8276篇文章)
- VB+Access设计图书管理系统 (104238次浏览)
- VB设计有语音报时和报警功能的闹钟 (13528次浏览)
- 用VB制作一个简单的MP3播放器 (8172次浏览)
- DataGrid 控件的使用 (5010次浏览)
- 用VB编写记事本 (4443次浏览)
- IP地址与子网掩码(二) (4152次浏览)
- IP地址与子网掩码(三) (3708次浏览)
- 掌握VB中的ADO数据对象编程 (3504次浏览)
- 在VB下设计开发实时的数据采集曲线 (3403次浏览)
- VB中使用WinSock控件编写网络程序 (3400次浏览)



