MCI Command String总览-完全参数篇

时间:2010-03-07 14:00:53  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:br />MCI Command String是多媒体设备的程序接口。通过它,我们可以打开一个多媒体文件,例如mp3,VCD,Mpeg4格式的文件等等,并对它进行播放,暂停,关闭等操作。现在小弟有幸给大家介绍一下MCI Command String的使用方法。 MCI Command String是通过mciExecute或mciSendString两个函数执行的。这两个函数的声明如下: Private Declare Function mciExecute Lib...
  正文:MCI Command String总览-完全参数篇
作者: Sproll

(注:本文以2000年七月的MSDN解释为准)

(由于小弟在MCI指令方面的认识有限,本文误解、疏漏甚至错误之处在所难免,请朋友们不吝指正。小弟的信箱是gangaro@163.com)

MCI Command String是多媒体设备的程序接口。通过它,我们可以打开一个多媒体文件,例如mp3,VCD,Mpeg4格式的文件等等,并对它进行播放,暂停,关闭等操作。现在小弟有幸给大家介绍一下MCI Command String的使用方法。

MCI Command String是通过mciExecute或mciSendString两个函数执行的。这两个函数的声明如下:

Private Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lphotoshop/ target=_blank class=infotextkey>pstrCommand As String) As Long

Private 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

这两个函数都有一个叫lpstrCommand的参数, 这个参数就是我们今天要介绍的MCI Command String。其中函数mciSendString还有三个参数,lpstrReturnString是一个字符串,它用来接收mciSendString函数返回的信息(例如,我们在lpstrCommand中的命令是让函数返回打开的文件的设备类型,那么函数就把设备类型的信息保存在lpstrReturnString参数中。);uReturnLength参数用来指定参数lpstrReturnString的长度;hwndCallback是接收“wait”、“notify”消息的窗口句柄,在Visual Basic中调用时该参数设为0即可。

如果命令执行出错,函数mciExecute会直接弹出一个对话框,提示出错的原因。而mciSendString函数会返回一个ErrorCode (错误代码),该代码的具体含义您可以参考MSDN中的目录“Platform SDKGraphics and Multimedia ServicesWindows MultimediaMultimedia ReferenceMultimedia ConstantsMCIERR Return values”。您可以根据具体情况选择到底使用哪一个函数来执行MCI命令。例如,在调试的时候使用mciExecute,以便快速地获得错误原因,而在将要发布的程序中使用mciSendString函数,让程序中已设置的错误陷阱去处理错误,以避免频繁的错误提示而使用户觉得厌烦。(对于有返回值的MCI命令,必须使用mciSendString函数。)


在熟悉了这两个函数后,我们就可以进入正题――MCI Command String了。

MCI Command String的命令格式是这样的:lpszCommand lpszDevice lpszCommandFlag lpazFlag

lpszCommand是mci命令,例如open,play,stop,close等等。

lpszDevice是设备名(或文件名)。例如,我们用以下的程序打开了我的文档中的Music01.dat文件,并用“alias”参数将其别名设为OpenFile:

dim lReturn as long (1)

lReturn=mciExecute(“open C:Mydocu~1Music01.dat alias OpenFile type MPEGVideo”) (2)

那么,在以后的MCI Command String中lpszDevice参数必须指定为OpenFile。例如,关闭该文件的代码如下:

lReturn=mciExecute(“close OpenFile”) (3)

如果我们没有为打开的文件设定别名,则以后调用的MCI Command String中lpszDevice参数为DOS路径名加文件名。例子如下:

dim lReturn as long (4)

lReturn=mciExecute(“open C:Mydocu~1Music01.dat type MPEGVideo”) (5)

lReturn=mciExecute(“close C:Mydocu~1Music01.dat type MPEGVideo”) (6)

从这里可以看出,设定别名的好处是减少了代码的输入。

LpszCommandFlag是mci命令的参数。如上代码(2),“alias OpenFile”以及“type MPEGVideo”就是命令“open”的参数。通常一个mci命令的参数少则几个多则几十个。

LpazFlag可以为指定为“wait”或“notity”。如果为“wait”,那么mci命令执行完毕后会向父窗体发送MCI_WAIT消息,“notity”则发送MCI_NOTIFY消息。此参数在Visual Basic中无甚用处。


在此先声明一下,微软提供的winmm.dll函数库支持的多媒体设备的类型共有cdaudio,dat,digitalvideo,other,overlay,scanner,sequencer,vcr,videodisc,waveaudio十种(注意:winmm.dll函数库不支持RealPlay格式的文件。您可以用以下代码获得已打开的文件的类型:lReturn=mciSendString(“capability lpszDevice device type”,sReturn,32,0) )。至于哪一类设备支持哪些参数,您可以在MSDN中查找关键字“MCI Command Strings”,选中所列出的命令,在其中的HTML帮助文档中通常会有一个表格告诉你哪些设备支持哪些参数或者在第一段中有信息告诉您哪些设备支持该命令。

好了,现在让我们对又繁索,又该死,又强大的mci命令参数作一个系统的介绍。(限于篇幅,本文仅介绍大部份主要命令的参数。)

"MCI Command String总览-完全参数篇"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/13106.html

 1/12    1 2 3 4 5 6 下一页 尾页


关键字:

关于《MCI Command String总览-完全参数篇》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td