设备控制(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)格式,而波形音频设备使用的时间格式指定“samples”。
  • 与“from”和“to”标志一起使用的变量适用于相应的时间格式。 例如,对于 CD 音频设备,变量指定一系列曲目,但对于波形音频设备,变量指定一系列样本。