设备控制 (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 音频设备,变量指定曲目范围,但对于波形音频设备,变量指定样本范围。