设备控制 (Windows 多媒体)
[与此页面关联的功能 MCI 是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 MediaPlayer 而不是 MCI。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
若要控制 MCI 设备,请打开设备,向其发送必要的命令,然后关闭设备。 这些命令可能非常相似,即使对于完全不同的 MCI 设备也是如此。 例如,以下系列 MCI 命令使用 mciSendString 函数播放音频 CD 的第六曲目:
mciSendString("open cdaudio", lpszReturnString,
lstrlen(lpszReturnString), NULL);
mciSendString("set cdaudio time format tmsf", lpszReturnString,
lstrlen(lpszReturnString), NULL);
mciSendString("play cdaudio from 6 to 7", lpszReturnString,
lstrlen(lpszReturnString), NULL);
mciSendString("close cdaudio", lpszReturnString,
lstrlen(lpszReturnString), NULL);
下一个示例演示一系列类似的 MCI 命令,这些命令播放波形音频文件的前 10,000 个样本:
mciSendString(
"open c:\mmdata\purplefi.wav type waveaudio alias finch",
lpszReturnString, lstrlen(lpszReturnString), NULL);
mciSendString("set finch time format samples", lpszReturnString,
lstrlen(lpszReturnString), NULL);
mciSendString("play finch from 1 to 10000", lpszReturnString,
lstrlen(lpszReturnString), NULL);
mciSendString("close finch", lpszReturnString,
lstrlen(lpszReturnString), NULL);
这些示例说明了有关 MCI 命令的一些有趣事实:
- 相同的基本命令 (打开、 设置、 播放和 关闭) 用于 CD 音频和波形音频设备。 所有 MCI 设备使用相同的 MCI 命令。
- 波形音频设备的 open 命令包含文件名规范。 波形音频设备是 复合设备 (与数据文件) 关联的设备,而 CD 音频设备是一种 简单设备 , (没有关联数据文件) 。
- set 命令在每种情况下指定时间格式,但 CD 音频设备的时间格式标志指定曲目/分钟/秒/帧 (TMSF) 格式,而用于波形音频设备的时间格式指定“样本”。
- 与“from”和“to”标志一起使用的变量适合各自的时间格式。 例如,对于 CD 音频设备,变量指定曲目范围,但对于波形音频设备,变量指定样本范围。