Windows已经为我们提供了一个关于多媒体处理的动态连接库WINMM.DLL(旧版本为MMSYSTEM.DLL),通过调用它所提供的API函数,我们就可以使用MCI指令进行多媒体方面的操作了。
让我们先来了解一下什么是MCI指令,MCI的全称是Media Control Interfase(媒体控制接口)。实际上MCI是一个高级的函数调用接口,我们可以把它看作是一个解释器,通过它,我们就可以直接和外部音频或视频设备打交道了。
接下来,就需要了解一下需要用到的API和MCI指令。有三个与MCI有关的API,它们是:
mciSendString(MCI指令,返回文本,返回长度,句柄复查);
mciExecute(MCI指令,返回文本,返回长度,句柄复查);
mciGetErrorString(MCI指令,返回文本,返回长度,句柄复查)。
mciSendString函数的功能是传送指令字符串给MCI,mciExecute的功能 和mciSendString一样,不同的是当发生错误时mciExecute会弹出对话框显示错误信息。mciGetErrorString的功能是将 MCI错误代码转换为字符串。
接着再介绍一些常用的MCI指令。
1、打开多媒体设备:open,如:open CDAudio、open c:\windows\chimes.wav type waveaudio。
2、播放多媒体设备:play,如:play CDAudio from 5000 to 20000(播放CD的第5秒到第20 秒)、play c:\windows\chimes.wav。
3、停止播放:stop。
4、暂停播放:pause。
5、继续播放:resume。
6、关闭多媒体设备:close,如:close all(关闭所有多媒体设备)。
7、得到设备状态信息:status,如:status cdaudio number of track(得到CD的曲目总数) 。又如:status 播放文件 length(取得邦放文件的长度)。
8、设置播放窗口:put 播放文件名 window at 左边 顶边 高度 宽度。
9、播放文件直到播放完毕才允许操作:PLAY 播放文件名 wait。
10、关闭窗口及对应文件:close 播放文件名 window。
11、循环播放:play 播放文件名 repeat。
12、满屏播放:play 播放文件名 fuiiscreen。
13、播放CD: play cd。
14、设置播放文件的时间格式:set 播放文件 time format frames。
15、播放AVI文件,并指定窗口别名为“test”或其他名称:“open ” + 播放文件名+ “ type ” + “AviVideo”(MCI设备类型为Avi)+“ Alias test ” + “parent ” + 到文本 (欲播放的窗口.取窗口句柄 ()) + “ style 1073741824”。
我只找到以上15个MCI指令,请朋友们继续补充。另外,当用上面提到的命令满屏播放时,点击屏幕会取消满屏播放,但是播放也会停止,怎么做到取消满屏后仍然继续自动播放?怎样知道是否已取消满屏播放?
附录:
可以用的设备类型名 有:AVIVideo,CDAudio,DigitalVideo,MMMovie,Scanner,SequencerMIDI,VCR,Videodisc,WaveAudio 等。当打开简单设备时(如:Audio CD等不需要文件的设备)必须设置该属性;如使用的是复合型MCI设备时(即文件的扩展名不能告诉你要使用的设备名)该属性也应当被设置。