|
通过它,我们可以打开一个多媒体文件,例如mp3,VCD,Mpeg4格式的文件等等,并对它进行播放,暂停,关闭等操作。现在小弟有幸给大家介绍一下MCI Command String的使用方法。
MCI Command String是通过mciExecute或mciSendString两个函数执行的。这两个函数的声明如下:
Private Declare Function mciExecute Lib "winmm.dll" Alias"mciExecute" (ByVal lpstrCommand As String) As Long
Private Declare FunctionmciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVallpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLengthAs 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中的目录“PlatformSDK\Graphics and Multimedia Services\Windows Multimedia\MultimediaReference\Multimedia Constants\MCIERR Return Values”。您可以根据具体情况选择到底使用哪一个函数来执行MCI命令。例如,在调试的时候使用mciExecute,以便快速地获得错误原因,而在将要发布的程序中使用mciSendString函数,让程序中已设置的错误陷阱去处理错误,以避免频繁的错误提示而使用户觉得厌烦。(对于有返回值的MCI命令,必须使用mciSendString函数。)
<!--[if !supportEmptyParas]--> <!--[endif]-->
在熟悉了这两个函数后,我们就可以进入正题――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~1\Music01.dat alias OpenFile typeMPEGVideo”) (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~1\Music01.dat type MPEGVideo”) (5)
lReturn=mciExecute(“close C:\Mydocu~1\Music01.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中无甚用处。
<!--[if !supportEmptyParas]--> <!--[endif]-->
在此先声明一下,微软提供的winmm.dll函数库支持的多媒体设备的类型共有cdaudio,dat,digitalvideo,other,overlay,scanner,sequencer,vcr,videodisc,waveaudio十种(注意:winmm.dll函数库不支持RealPlay格式的文件。您可以用以下代码获得已打开的文件的类型:lReturn=mciSendString(“capabilitylpszDevice device type”,sReturn,32,0) )。至于哪一类设备支持哪些参数,您可以在MSDN中查找关键字“MCI CommandStrings”,选中所列出的命令,在其中的HTML帮助文档中通常会有一个表格告诉你哪些设备支持哪些参数或者在第一段中有信息告诉您哪些设备支持该命令。
好了,现在让我们对又繁索,又该死,又强大的mci命令参数作一个系统的介绍。(限于篇幅,本文仅介绍大部份主要命令的参数。)
<!--[if !supportEmptyParas]--> <!--[endif]-->
open:
该命令用来打开一个多媒体文件。所有的设备都支持这个命令。在任何mci命令执行前,都必须先使用该命令打开多媒体文件,以初始化设备。
该命令的几个参数意义如下:alias device_alias――指定欲打开文件的别名;shareable――是否以共享方式打开,如果不指定该参数,则以不共享的方式打开,也就是说,打开某一个多媒体文件后,其它程序不能再打开它,如果指定该参数,则以共享方式打开;type device_type――指定该文件在Windows中注册的多媒体文件名(注:Windows中注册的多媒体文件名与设备类型名并不相同,设备类型只有以上所说的十种类型。RealPlay格式的音视频流是第三方公司开发的媒体类型,不属于Microsoft Windows支持的设备。而Windows中注册的多媒体文件名请查看C:\Windows\win.ini文件的[mci extensions]小节。),如MPEGVideo,AVIVideo,waveaudio等,MPEGVideo、AVIVideo类型的文件其实都属于设备digitalvideo。
对于open命令,有几个须注意的方面。首先,用open命令打开一个文件时,文件的路径必须是DOS格式的短路径。您可以用API函数GetShortPathName返回某路径的该格式。对于参数type device_type,复合型设备的文件(如:MPEGVideo)mci设备会自动根据其在Windows中注册的扩展名(要想获得某扩展名的文件在Windows中注册的类型名,请查看C:\Windows\win.ini文件的[mci extensions]小节。)设置该参数(所以对于C:\Windows\win.ini文件的[mci extensions]小节中已列的扩展名,不必指定该参数),但如果设备无法根据其扩展名获得文件的类型的话,就必须指定该参数,如果不指定则会提示:“这不是已注册的mci设备“,而简单型设备(如CD音轨设备,可编程控制的录放像机,可编程控制的镭射影碟机)则不必指定该参数。
如果该命令被成功执行,那么返回值为0。至此,您就可以用alias指定的别名执行各种各样的mci命令了。
(注意:以下命令所能实现的功能虽然很令人激动,但是通常您打开的文件支持的命令没有几个。)
(限于篇幅,每个命令具体的参数与MCI设备的支持情况请参照MSDN。在此恕不列出。)
(参数中的黑体字表示这是一个MCI命令,斜体字表示该单词所表示的是MCI参数的变量,必须由开发者指定。)
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
Break:指定一个键来退出使用wait参数的当前mci命令。这是一个MCI系统命令,所有MCI设备都支持这个命令。
on virtual_ key_ code: 指定一个键用来退出含有wait参数的命令
off: 使当前break键无效
Capability:获得已打开的设备的功能,比如能否播放,能否退出,能否记录等等。所有MCI设备都支持这个命令。
can detect length:如果设备能侦测长度则返回TRUE
can eject:如果设备能弹出则返回TRUE
can freeze:如果设备支持冻结数据则返回TRUE
can lock:如果设备支持锁定数据则返回TRUE
can monitor sources:如果设备能将一个输入源输出到指定的输出源则返回TRUE,与当前的输入源无关
can play:如果设备能播放则返回TRUE
can preroll:如果设备在cue命令中支持preroll参数则返回TRUE
can preview:如果设备能向前快放则返回TRUE
can record:如果设备支持记录则返回TRUE
can reverse:如果设备能后退则返回TRUE
can save:如果设备能保存数据则返回TRUE
can stretch:如果设备能缩放输出的图像则返回TRUE
can stretch input:如果设备能在数据流解压到帧缓冲的同时能缩放输出的图像则返回TRUE
can test:如果设备能识别“test“关键字则返回TRUE
cav:当与其它项组合使用时,该参数返回申请CAV格式时,videodiscs设备的返回信息,如果没有插入任何videodiscs该参数为默认值
clock increment rate:返回外部时钟将每秒钟分为几个单位,如millisecond返回1000,0表示没有支持的外部时钟
clv:当与其它项组合使用时,该参数返回申请CLV格式时,videodiscs设备的返回信息
compound device:设备支持文件名时返回TRUE
device type:返回设备类型名,其值可以如下:
cdaudio
dat
digitalvideo
other
overlay
scanner
sequencer
vcr
videodisc
waveaudio
fast play rate:返回每秒快放的帧数,如果为0则不支持快放
has audio:如果设备支持音频则返回TRUE
has clock:如果设备支持时钟则返回TRUE
has still:如果设备将文件视为一静态图像比动态视频文件更快则返回TRUE
has timecode:如果设备支持timecode则返回TRUE
has video:如果设备支持视频则返回TRUE
inputs:返回输入设备的总数
maximum play rate:返回最快的播放速度,单位为帧每秒
minimum play rate:返回最慢的播放速度,单位为帧每秒
normal play rate:返回正常的播放速度,单位为帧每秒
number of marks:返回最大的遮罩数量,0表示不支持遮罩
ouputs:返回输出设备的总数
seek accuracy:返回定位某帧的精确度,0表示精确定位,1表示与所要定位的帧的误差不大于1帧
slow play rate:返回慢放的播放速度,单位为帧每秒
uses files:如果复合设备使用的数据保存在文件中则返回真
uses palettes:如果设备使用调色板则返回真
windows:返回设备支持的可以同时显示的窗口数量
Capture:将帧缓冲的数据拷贝到指定的文件中。digital-video支持该命令。
at pathname:指定所捕捉的帧缓冲中的图像所要保存的路径和文件名
at rectangle:指定所捕捉的帧缓冲中的图像区域,默认为put命令的source参数指定的区域
注意:该命令可能会在播放的时候或者在需要资源的操作中失效。如果帧缓冲在实时地更新,则会暂停。
Close:关闭设备,释放内存。当一个MCI设备的所有实例或文件都关闭的时候,该MCI设备被卸载。所有设备支持该命令。
注意:如果要关闭所有的设备需如此:close all
Configure:显示一对话框,以设置设备的某些属性。digital-video支持该命令。
Copy:将数据拷贝至剪切板。digital-video支持该命令。
at rectangle:指定要拷贝的帧缓冲的区域,默认为整个帧缓冲
audio stream stream:指定该命令影响的当前工作组的音频流,如果使用了该参数,又想拷贝视频流,则必须指定“video stream“参数,默认为audio stream+video stream
from position:指定开始记录点,默认为当前位置
to position:指定终点,该位置的视音频流不被记录,默认为当前工作组的终点
video stream stream:指定该命令影响的工作组中的视频流,如果使用了该参数,又想拷贝音频流,则必须指定“audio stream“参数
Cue:在播放或记录之前执行该命令可以加快播放或记录速度。digital-video,VCR和waveform-audio支持该命令。
from position:指定起始点
input:准备记录。digital-video可以省略
noshow:准备播放,但不先显示。
output:准备播放,如果input和output都没指定,默认为output
preroll:预滚动到下一位置
reverse:指定为倒放
to position:指定终点
注意:如果设备正在播放、记录或暂停则该命令会失败。使用了“output”参数时,再使用“play”命令的“from”、“to”或“reverse”参数则会退出该命令,使用了“input”参数时,再使用“record”命令的“from”、“to”或“initialize”参数会退出该命令。
Cut:将工作区的数据剪切到剪切板。digital-video支持该命令。
at rectangle:指定每一帧的区域。默认为整个帧。当该参数被指定时,帧并不被删除,代替原图像信息的为黑色块
audio stream stream:指定该命令影响的当前工作组的指定音频流,如果使用了该参数,又想剪切视频流,则必须指定“video stream“参数,默认为audio stream+video stream
from position:指定开始剪切点,默认为当前位置
to position:指定终点,终点并不被剪切,默认为工作组终点
video stream stream:指定该命令影响的当前工作组的指定视频流,如果使用了该参数,又想剪切音频流,则必须指定“video stream“参数,默认为audio stream+video stream
注意:在没有调用“save”命令前,虽然播放的时候好像“cut”命令已经成功了,但只有当“save”命令被调用后该命令所作的删除才会被写入文件
Delete:从已打开的多媒体文件中删除数据段。digital-video和waveform-audio支持该命令。
at rectangle:指定每帧删除的区域。默认为整个帧。当该参数被指定时,帧并不被删除,代替原图像信息的为黑色块
audio stream stream:指定该命令影响的当前工作组的音频流。如果使用了该参数,又想删除视频流,则必须指定“video stream“参数,默认为audio stream+video stream
from position:指定开始位置,默认为当前位置
to position:指定终点,默认为工作组终点
video stream stream:指定该命令影响的当前工作组的视频流,如果使用了该参数,又想删除音频流,则必须指定“video stream“参数,默认为audio stream+video stream
注意:在执行任何使用position参数的命令前,你可以使用“set”命令的“time format”参数来设定媒体的时间格式,如毫秒,帧等
Escape:将设备指定的信息传送到某设备。videodisc设备支持该命令。
Freeze:终止视频输入或输出,禁止视频流从帧缓冲中获得数据。dgital-video、video-overlay和VCR支持该命令。
at rectangle:指定区域。对于digital-video设备,在指定区域中的像素会遮罩覆盖。rectangle的格式为X1 Y1 X2 Y2。X1 Y1为左上角坐标,X2 Y2指定宽度和长度
field:冻结指定的区域,该参数为默认的
frame:冻结整个帧
input:冻结输入图像的当前帧,不管当前正在播放还是暂停
output:冻结VCR的当前帧输出。如果VCR在播放的时候执行该命令,则当前帧被冻结且VCR被暂停。如果VCE已暂停则当前帧被冻结。如果input和output都没指定,则默认为output
outside:指定被冻结的为“at”参数所定义的区域外面部分
注意:要指定一个不规则区域,可以组合使用freeze和unfreeze命令。一些video-overlay设备会限制区域的复杂度
index:控制VCR设备实屏显示。仅VCR设备支持
off:关闭实屏显示
on:打开实屏显示。显示的项目为“set”命令的“index”参数指定的信息
Info:获得设备信息,例如算法,版权,所打开的文件,UPC等等。所有MCI设备都支持该命令。
audio algorithm:返回当前音频压缩算法的名称
audio quality;返回当前音频压缩质量的描述。如果将其quality设为某一值而未使用其指定值可能会返回unknown
copyright:返回MIDI文件的版权信息
file:返回复合设备使用的文件名。如果设备没有打开一个文件而且“load”命令也没被用过,那么返回一个空字符串
info identity:为CD产生一个唯一的序列号
info upc:产生CD的UPC(Universal productCode全球产品码)
input:返回当前输入设备的描述
name:返回sequence名字
output:返回当前输出设备的描述
product:返回该设备的描述。返回信息经常包括产品名称和型号。返回信息经常是31个字节或更小
still algorithm:返回当前静态图像压缩算法名称
still quality:返回当前静态图像压缩质量描述名。如果将其quality设为某一值而未使用其指定值可能会返回unknown
usage:返回工作组中视音频数据的使用限制描述
version:返回设备驱动或硬件的版本
video algorithm:返回当前视频压缩算法名称
video quality:返回当前视频压缩质量描述名如果将其quality设为某一值而未使用其指定值可能会返回unknown
window text:返回设备使用的窗口的标题
List:返回视频和音频的数量和类型。digital-video和VCR支持该命令。
audio algorithm:返回音频压缩算法名称
audio quality algorithm algorithm:返回“algorithm”指定的压缩质量级别。如果“algorithm”为“current,”则返回当前压缩算法的质量级别
audio source count:返回音频输入的总数
audio source number index:返回“index”指定的音频输入源的类型
audio stream:返回当前工作组中的音频流名称,例如English或German
count:返回指定类型的数量(供“number index”使用)
number index:返回一描述由index指定的类型的字符串。index必须在1至count返回的数值之间
still algorithm:返回静态图像压缩算法名称
still quality algorithm algorithm:返回由algorithm指定的静态图像的压缩质量级别。如果“algorithm”为“current”,则返回当前压缩算法的质量级别
video algorithm:返回视频压缩算法名称
video quality algorithm algorithm:返回由algorithm指定的视频压缩质量级别。如果“algorithm”为“current”,则返回当前压缩算法的质量级别
video source:返回视频源信息。当使用“count”参数时,返回的是视频源数量。当使用“number”参数时,返回的是某一视频源的类型。MCI定义了以下的类型常量:“ntsc”,“rgb”,“pal”,“secam”,“svideo”,“generic”。同一类型可能会返回多个源。当某一频道允许使用多个信号时,则会使用“generic”数据源
video source count:返回视频输入的总数
video source number index:返回“index”指定的视频输入源类型
video stream:返回当前工作组视频流名称,例如“funny ending”或“sad ending”
注意:对于VCR设备,“video source”和“audio source”必须与“count”或“number”参数同时使用。如果为“count”,则返回输入的视频或音频流的总数。如果为“number”,则返回相应的输入设备类型。它可以为以下值:“tuner”,“line”,“svideo”,“aux”,“generic”。一般来说,应该先用“count”参数查询一下VCR设备,再指定“number”参数
Load:用设备指定的格式打开一个文件。类似于open的功能。digital-video和video-overlay支持该命令。
Mark:控制记录或删除磁带上的遮罩,VCR设备支持该命令。
erase:如果当前位置存在遮罩,则擦除它
write:写入遮罩,VCR设备必须在播放或者记录中
遮罩是可以被VCR设备在高速查找中检测到的写入到记录体中的特殊信号。遮罩是VCR的特点。
Monitor:指定当前数据源,默认的当前数据源是当前工作区。转换当前源会转换所有的当前源中的音视频流。digital-video设备支持该命令。
file:指定当前工作组为当前数据源
input:指定外部输入为当前数据源。如果正在播放,则先暂停。如果“setvideo”命令“on”参数已设,则本参数会显示一个默认的隐藏窗口。当指定一个输入的数据源时,设备的其它实例的功能可能会受到限制
method method:当和“input”参数一起使用时,“method”值可以为“pre”,“post”或“direct”。
Open:
alias device_alias:指定设备的别名。一但指定该参数,则后续命令的“device_id”必须为变量“device_alias”
buffer buffer_size:设定waveform-audio设备的缓冲区大小,单位为秒。典型的设置为4秒,MCIWAVE设备最小为2秒,最大为9秒
parent hwnd:指定父窗体句柄
shareable:初始化设备时将其设为共享。如果某设备已设为共享方式打开,而又想再次打开该设备,则必须再指定该参数。MCISEQ sequencer及MCIWAVE设备不支持文具参数
sytle child:以子窗体方式打开一个窗体
style overlapped:以重叠方式打开一个窗体
style popup:以弹出式打开一个窗体
style style_type:指定一窗体样式
type device_type:指定某文件的设备类型
注意:如果使用“capability”命令为打开的设备返回设备类型,对于CD audio设备返回“cdaudio”,videodisc返回“videodisc”,MIDI sequencer返回“sequencer”,digital-video返回“AVIVideo”,waveform-audio返回“waveaudio”。
Paste:将剪切板的内容拷贝至工作区。digital-video设备支持该命令。
at rectangle:指定帧数据粘贴的区域。包括边界
audio stream stream:该命令影响工作区中指定的音频流。如果指定该参数后又想粘贴视频流,则必须指定“video stream”参数。默认为audio stream+video stream
insert:指定数据将被插入到工作区。插入点的数据会被移动到前面。这是默认设定
overwrite:将数据拷贝到工作区,插入点后的数据会被覆盖
to position:指定数据粘贴的工作区位置。默认为当前位置
video stream stream:该命令影响工作区中指定的视频流。如果指定该参数后又想粘贴音频流,则必须指定“audio stream”参数。默认为audio stream+video stream
Pause:暂停播放或记录。CD audio,digital-video,MIDI sequencer,VCR,videodisc和waveform-audio支持该命令。
Play:呵呵,这个命令无须多说。CD audio,digital-video,MIDI sequencer,videodisc,VCR和waveform-audio支持该设备。
at time:指定设备执行该命令的时间。
fast:指定设备快放。可以用“set”、“status”命令的“speed”参数设置和获取播放速度
from position:指定回放开始位置。默认为当前位置
fullscreen:指定使用一个全屏窗口播放。该参数仅对压缩文件有效,未压缩文件不能全屏播放
repeat:当播放到最终位置时重新开始播放
reverse:指定设备倒放。不能与“to position”参数同时使用。对videodisc设备,仅CAV格式的支持
scan:在不使视频失效的情况下尽可能地快放。对videodisc设备,仅CAV格式的支持
slow:指定设备慢放。可以用“set”、“status”命令的“speed”参数设置和获取播放速度
speed integer:按指定速度播放videodisc设备,单位帧每秒。仅CAV格式的支持
to position:指定回放终点。默认为媒体的终点
window:指定用与设备实例关连的窗口播放,这是默认设置
Put:决定显示源和显示目的窗口的区域。digital-video和video-overlay支持该命令。
destination:选择目的窗口的整个客户区显示图像
destination at rectangle:选择目的窗口的部份客户区显示图像
frame:选择整个帧缓冲区接收输入的视频图像
frame at rectangle:选择部份帧缓冲区接收输入的视频图像
source:选择整个要在目的窗口中显示的图像
source at rectangle:选择部份要在目的窗口中显示的图像
video:选择整个将被帧缓冲区捕捉的输入视频图像
video at rectangle:选择部份将被帧缓冲区捕捉的输入视频图像
window:恢复最初的播放窗口大小,这个命令同时也显示窗口
window at rectangle:改变显示窗口的大小和位置。
window client:恢复窗口的客户区
window client at rectangle:改变窗口客户区的大小和位置
“rectangle”的格式为X1 Y1 X2 Y2。X1 Y1为左上角坐标,X2 Y2指定宽度和长度
“put”命令定义了如下的区域(仅对video-overlay而言):“video rectangle”定义了要捕捉的输入视频图像的区域,“frame rectangle”定义了接收输入视频图像的帧缓冲区域,“source rectangle”定义了拷贝到目的窗口的帧缓冲区域,“destinationrectangle”定义了接收视频图像的窗口客户区
Quality:自定义音频或视频的quality level和静态图像的压缩方式(例如BMP、JPG)。digital-video设备支持该命令
Realize:自定义图像显示窗口的调色板。digital-video支持该命令
Record:无须多说。VCR和waveform-audio设备支持该命令。虽然digital-video和MIDI sequencer设备支持该命令,但是MCIAVI和MCISEQ驱动不执行该命令
at rectangle:指定用作像素压缩、保存源的外部输入的一个矩形区域,默认为“put”命令“video”参数指定的区域。
at time:指定设备执行该命令的时间
audio stream stream:指定记录的音频流
from position:指定记录的开始位置,默认为当前位置
hold:当记录结束时暂停。记录结束时,“monitor”命令的“file”参数会被自动执行,如果想返回,执行“minitor”的“input”参数
initialize:初始化磁带
insert:指定新数据会被插入到文件的当前位置中
overwrite:指定新数据会覆盖文件中原数据
to position:指定记录的终点
video stream stream:指定记录的视频流
如果执行了“stop”或“pause”命令则记录中止。在使用任何有关位置值的参数之前,你可以使用“set”命令设置所希望的时间单位
Reserve:为设备的工作区分配连续的磁盘空间。digital-video设备支持该命令。
in path:指定用来保存记录数据的临时文件的目录路径。文件名由设备自动命名,该临时文件在设备被关闭时删除
size duration:指定工作区使用的近似磁盘空间。参数“duration”必须表示为当前的时间格式。如果省略,则设备会使用该设备默认的磁盘空间大小
指定磁盘空间后,接下来的“record”和“save”命令会使用该命令申请的磁盘空间。如果工作区有未保存的数据,在执行该命令后会丢失。某些设备并不能识别该命令,并忽略它。如果在记录之前没有执行该命令,则记录时会按设备的默认值先执行本命令。如果你想更好地控制磁盘分配延迟,控制磁盘分配大小和磁盘位置,请使用本命令。已分配的磁盘空间直到数据保存之后,或设备实例关闭之后才释放。
Restore:将一静态图像从文件拷贝到帧缓冲中。digital-video设备支持该命令。
at rectangle:指定相对于帧缓冲的区域。“rectangle”的格式为X1 Y1 X2 Y2。X1 Y1为左上角坐标,X2 Y2指定宽度和长度
from filename:指定保存图像的文件名。该参数必须指定
Resume:继续播放或记录。digital-video,VCR和waveform-audio支持该命令。虽然CD audio,MIDI sequencer和videodisc设备支持该命令,但是MCICDA,MCISEQ,MCIPIONR驱动不支持。
Save:保存一个mci文件。video-overlay和waveform-audio设备支持该命令。虽然digital-video设备和MIDI sequencer也支持该命令,但是MCIAVI和MCISEQ驱动不支持。
abort:退出正在进行的保存操作。该参数必须单独使用
at rectangle:指定相对帧缓冲的矩形区域。“rectangle”的格式为X1 Y1 X2 Y2。X1 Y1为左上角坐标,X2 Y2指定宽度和长度
filename:指定要保存的文件名。如果路径没有指定,文件会保存在上一个显式或隐式执行的reserve命令指定的路径中。如果没有执行过reserve命令,默认为应用程序的保存路径,该参数必须指定
keepreserve:在“reserve”命令未执行前指定未使用的磁盘空间
Seek:定位到指定的帧位置并等待。
at time:指定设备执行本命令的时间
mark mark_num:定位到“mark_num”变量指定的遮罩上。遮罩是可以被VCR设备在高速查找中检测到的写入到记录体中的特殊信号。遮罩是VCR的特点。
reverse:指定在VCR和CAV格式的videodisc上反向定位。如果指定to参数,则该参数无效。对VCR本参数与“mark”参数同时使用
to end:定位到媒体的终点
to position:定位到“position”指定的媒体位置
to start:定位到媒体的起始点
在使用任何有关位置值的参数之前,你可以使用“set”命令设置所希望的时间单位。digital-video支持两种形式的定位方式。这两种方式你可以使用“set”命令来设置。“seek exactly on”是指定位到指定的那一帧。“seek exactly off”是指定位到与指定帧最接近的关键帧。如果CD audio正在播放时执行该命令,则播放会暂停。如果videodisc设备执行该命令,设备会关闭音频,并向前或向后快放,直到定位成功。如果waveform-audio设备执行该命令,其行为取决于取样大小。如果取样大小为16bit或更大,当指定的位置与取样起始点不同时,“seek”命令定位到最近的取样起始点。
Set:设置某些参数(例如左声道,光驱开关,Time Format等等。)。CD audio,digital-video,MIDI sequencer,VCR,videodisc,video-overlay和waveform-audio支持该命令。
alignment integer:设置与传送到waveform-audio设备的数据起始部份有关的数据块队列
any input:在记录时使用任何支持当前格式的输入。这是默认设置
any output:在播放时使用任何支持当前格式的输出。这是默认设置 |
|