デバイス コントロール (Windows マルチメディア)
[MCI このページに関連付けられている機能は、従来の機能です。 これは、MediaPlayerに置き換えられます。 MediaPlayer は、Windows 10 および Windows 11 用に最適化されています。 新しいコードでは、可能な場合は、MCI ではなく、MediaPlayer 使用することを強くお勧めします。 従来の 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 オーディオ デバイスの場合、変数はトラックの範囲を指定しますが、波形オーディオ デバイスの場合、変数はサンプルの範囲を指定します。