デバイス コントロール (Windows マルチメディア)

[このページに関連付けられている機能 MCI は、従来の機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能な場合は MCI ではなく MediaPlayer を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

MCI デバイスを制御するには、デバイスを開き、必要なコマンドをデバイスに送信して、デバイスを閉じます。 コマンドは、まったく異なる MCI デバイスでも非常に似ています。 たとえば、次の一連の MCI コマンドは、 mciSendString 関数を使用してオーディオ CD の 6 番目のトラックを再生します。

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);

次の例は、波形オーディオ ファイルの最初の 10,000 サンプルを再生する同様の一連の MCI コマンドを示しています。

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 オーディオ デバイスの場合、変数はトラックの範囲を指定しますが、波形オーディオ デバイスの場合、変数はサンプルの範囲を指定します。