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