主题:  何为Mci?

平心桨

职务:普通成员
等级:1
金币:0.0
发贴:57
#12001/2/14 12:28:53
在前面的帖子中,很多高手提到了Mci指令,而且好象Mci指令的功能十分了得,
我想问各位高手,Mci指令到底是怎么回事,哪里有这方面的资料下??

我很菜,请多多指教!



xuyi_5d

职务:普通成员
等级:2
金币:1.0
发贴:179

平心桨

职务:普通成员
等级:1
金币:0.0
发贴:57
#32001/2/15 13:55:19
谢谢xuyi!
文章已看过,但仍然不很明白!
===============================
能否告知哪里有更详细的学习资料下!
或者能否介绍几本关于Mci指令的书?
我在书店里找过,但没有发现适合的书籍!
===============================
高手们是通过什么途径学到此类知识的?



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#42001/2/16 0:46:42
一个cdplayer的关键语句
打开关闭光驱
mci "status MyCD media present"
if the result = "true" then
mci "set MyCD door open"
else
mci "set MyCD door closed"
end if
监测是否为cd
mci "status MyCD media present"
if the result <> "true" then
end if
第一曲
mci "status MyCD position"
put the result into TMSF
put chars(TMSF,1,2) into Track

歌曲时间
put "status MyCD length track " & Track into MCI_STR
mci MCI_STR
put chars(the result,1,5) into trackLength

已播放时间
put chars(TMSF,4,8) into playtime

播放
mci "play MyCD"
暂停
mci "pause MyCD"

停止
mci "play MyCD from 0"&trackno&":00:00:00"
mci "stop MyCD"
下一首
mci "status MyCD number of tracks"
put value(the result) into numTracks
mci "status MyCD position"
put value(chars(the result,1,2) ) into trackNo
if (trackNo = numTracks) then
set trackNo = 1
else
set trackNo = trackNo + 1
end if
put "play MyCD from " & string(trackNo) & ":00:00:00" into MCI_STR
mci MCI_STR
上一首
mci "status MyCD number of tracks"
put value(the result) into numTracks
mci "status MyCD position"
put value(chars(the result,1,2) ) into trackNo
if (trackNo = 1) then
set trackNo = numTracks
else
set trackNo = trackNo - 1
end if
put "play MyCD from " & string(trackNo) & ":00:00:00" into MCI_STR
mci MCI_STR

页面:点这儿参观



dexn

职务:普通成员
等级:1
金币:1.0
发贴:157
#52001/2/16 9:55:16
两个例子我都看过了,但一点概念都没有,所以看了也一头雾水。



Call Me Simon

职务:普通成员
等级:2
金币:2.0
发贴:646
#62001/2/16 18:08:36
MCI是microsoft发展的一种媒体控制技术, Media Control Interface. 详细的资料在微软的网站。director 只是借用MCI的指令, 所以这种技术对于跨平台的多媒体项目来说并不适用, 而且好像Macromedia 也建议用户选用相关的Xtra, 而不要依赖MCI.
下面是有关MCI的连接。


msdn.microsoft.com/library/psdk/multimed/mci_7vvt.htm



改将

职务:普通成员
等级:1
金币:0.0
发贴:102
#72001/2/17 14:40:09
MCI是microsoft发展的一种媒体控制技术, Media Control Interface. 详细的资料在微软的网站。director 只是借用MCI的指令, 所以这种技术对于跨平台的多媒体项目来说并不适用, 而且好像Macromedia 也建议用户选用相关的Xtra, 而不要依赖MCI.
MCI,第一次听说这个东西于是到网上去找了一下懂了一点比如说控制cd的那个例子。
MCI CD Audio指令
MCICDA设备:使用MCICDA.DRV驱动程序驱动的CD Audio设备。
  在每个指令的语法中,[notify][wait]是可以忽略的,device_name通常是以cdaudio表示,也可以指定一个alias(别名)来代替。arguments为MCI指令要用到的各种参数。
capability 返回
功能: 询问有关CD Audio设备的各项功能。
语法: capability device_name arguments [notify][wait]
参数: can eject 是否具有退出CD盘的能力,传回true。
can play 是否具有播放功能,传回false。
can record 是否具有记录功能,传回false。
can save 是否具有存储功能,传回false。
compound device 是否是复合型设备,传回false。
device type 传回CD Audio。
has audio 是否具有声音输出能力,传回true。
has video 是否具有图象输出能力,传回false。
use files 播放时是否需要使用文件,传回false。


close
功能: 关闭CD Audio设备。
语法: close device_name [notify][wait]
参数: 无
范例: 关闭CD Audio设备
close cdaudio

info
功能: 传回一个以空格字符为结束标记的字符串给应用程序所提供的文本缓存区,以描述关于CD Audio设备的相关信息。
语法: info device_name arguments [notify][wait]
参数: product 传回CD Audio(CD声音)。
范例: 取得CD Audio设备的产品名称:
info cdaudio product

open
功能: 打开CD Audio设备。
语法: open device_name arguments [notify][wait]
参数: alias device_alias 给予CD Audio设备一个别名。
shareable 设定所使用的CD Audio设备是可与其他程序分享的。
范例: 打开CD Audio设备,并设定CD为其别名:
open cadudio alias CD

pause
功能: 如果CD Audio设备正在播放中,则暂停播放动作。对CD Audio设备而言,stop和pause是相同的指令。
语法: pause device_name [notify][wait]
参数: 无
范例: 暂停播放CD Audio:
pause cdaudio

play
功能: 播放CD唱片上的音乐。
语法: play device_name arguments [notify][wait]
参数: from pos1 to pos2 描述CD播放的起始(pos1)及结束(pos2)位置。如果忽略from,则从当前的位置开始。如果忽略to,则播放到CD的结束位置。假如from或to大于CD的时间长度或是from大于to的位置,则传回错误信息。
范例: 播放CD第二首到第四首曲目:
play cdaudio from 2to 4

resume
功能: 恢复先前使用Pause命令暂停的动作,继续播放。MCICDA设备不支持这个指令。
语法: resume device_name [notify][wait]
参数: 无
范例: 继续播放CD音乐:
resume cdaudio

seek
功能: 搜索指定的位置。如果CD Audio设备正处于播放状态,则停止播放。
语法: seek device_name arguments [notify][wait]
参数: to position 描述指定的位置。如果大于CD片的时间长度则传回错误信息。
to start 移动到CD唱片的起始位置。
to end 移动到CD唱片的结束位置。
范例: 快速搜索至CD唱片的3分20秒处(时间格式为msf):
seek cdaudio to 3:20

set
功能: 设定CD Audio设备的各种状态。
语法: set device_name arguments [notify][wait]
参数: audio all off 关闭语音输出功能。
audio all on 启动语音输出功能。
audio left off 关闭左声道的声音。
audio left on 启动左声道的声音。
audio right off 关闭右声道的声音。
audio right on 启动右声道的声音。
door closed 如果可能,装入CD唱盘。
door open 如果可能,退出CD唱盘。
time format milliseconds 设定时间格式为毫秒。milliseconds可简写成ms。
time format msf 设定时间格式为mm:ss:ff。mm表示分,ss表示秒,ff表示frames,这是默认格式。ff或ss如果为0,表示我们可以忽略这两个值。例如:3:3:0,3:0:0都是表示3分钟的意思。每个单位都有其最大值,mm为59,ss为59,ff为74。
time format tmsf 设定时间格式为tt:mm:ss:ff。tt表示tracks(音轨,曲目),mm表示分,ss表示秒,ff表示frames,这是默认格式。ff或ss如果为0,表示我们可以忽略这两个值。例如:3:3:3:0,3:0:0:0都是表示第3首曲目的意思。每个单位都有其最大值,tt为99,mm为59,ss为59,ff为74。
范例: 设定时间格式为tmsf:
set cdaudio time format tmsf

status
功能: 传回CD Audio设备的状态。
语法: status device_name arguments [notify][wait]
参数: current track 取得当前的track(磁轨,曲目)。
length 传回目前使用的CD盘片的时间长度。
length track track_no 传回track_no所指定的track有多少时间。
media present 如果CD Audio设备中有置入CD片,传回true。
mode 传回CD Audio设备当前的状态。如not ready、paused、playing、seeking或stopped。
number of tracks 传回所使用的CD盘有多少tracks。
position 传回当前所在的位置。
position track t_no 传回t_no所表示的track之起始位置。
ready 如果CD Audio设备正在待命中,传回true。
start position 传回CD盘的起始位置。
time format 传回当前的时间格式。
范例: ⑴ 监测是否放入CD片:
  status cdaudio media present
⑵ 监测CD盘的总长度:
  status cdaudio length
⑶ 监测CD盘当前的位置(使用当前的时间格式):
  status cdaudio position

stop
功能: 停止播放CD音乐。
语法: stop device_name [notify][wait]
参数: 无

另外,mci还有系统 | 动画播放 | MIDI | 音频 | AVI |等方面的控制语句就不多说了。
对照以下大家会对mci有所了解了。
(以上的内容为转载)








编辑历史:[这消息被kwwx编辑过(编辑时间2001-02-17 14:43:20)]