seek

seek コマンドは、デバイスの再生(演奏)位置を変更して停止します。CDオーディオ、デジタルビデオ、MIDIシーケンサ、VCR、ビデオディスク、ウェーブ形式オーディオの各デバイスがこのコマンドを認識します。

このコマンドを送信するには、 mciSendString 関数を使います。

seek device seekflag flag

引数

device

MCIデバイスの識別子を指定します。この識別名またはエイリアスは、デバイスがオープンされるときに割り当てられます。

playflag

デバイス再生のためのフラグを記述します。以下に指定可能なパラメータと、パラメータを認識することのできるデバイスタイプを示します。

パラメータ 意味 デバイス
at time

いつこのコマンドを実行するのか、または、 cue コマンドによりすでに再生の準備がなされている場合には、いつそのコマンドを実行するのかを指定します。

vcr
mark mark_num

mark_num で指定される相対的な指標までシークします。この値は正の数でなければいけません。指標は、 mark コマンドを用いてVCRテープに書き込まれた信号で、高速な検索に使用されます。

vcr
reverse

VCRおよびCAVビデオディスクでのシーク方向が逆向きであることを指定します。“to”フラグが指定されている場合には、このフラグは無効です。VCRでは、このフラグを“mark”フラグとともに指定する必要があります

vcr
videodisc
to end

内容の終端へシークします。

cdaudio
digitalvideo
sequencer
vcr
videodisc
waveaudio
to start

内容の最初へシークします。

cdaudio
digitalvideo
sequencer
vcr
videodisc
waveaudio
to position

シークを停止する位置を指定します。 cdaudio デバイスでは、再生終了位置としてディスクの末尾よりも後ろを指定した場合には、エラーが返ります。

cdaudio
digitalvideo
sequencer
vcr
videodisc
waveaudio
flag

何も記述しないか、“wait”、“notify”のいずれか、またはこの両方を記述します。デジタルビデオおよびVCRデバイスでは、“test”を記述することもできます。

パラメータ 意味
wait

アプリケーションに制御を返す前に、要求された指示を完了するまで待機します。

notify

デバイスが作業を完了したときに、ウィンドウに MM_MCINOTIFY メッセージをポストします。

test

デバイスがコマンドを実行することができるかどうかを判定します。コマンドは実際に実行されません。デバイスがコマンドを処理できない場合にはエラーが返ります。デジタルビデオおよびVCRデバイスでのみ指定できます。

戻り値

成功すると 0 が返ります。

失敗するとエラーコードが返ります。

解説

位置を指定してコマンドを送信する前に、 set コマンドを使用してタイムフォーマット(時間の表現形式)を指定しておくべきです。

デジタルビデオデバイスは2種類のシークモードをサポートしており、 set コマンドで変更することができます。“seek exactly on”モードでは、シークコマンドが指定されたフレームへ移動させるようにします。“seek exactly off”モードでは、指定されたフレームより前にある最も近いキーフレームへと移動させるようにします。

CDオーディオデバイスでは、 seek コマンドが送信されたときに演奏している場合には、再生が停止されます。ビデオディスクデバイスでは、ビデオおよびサウンドが停止し、早送りまたは巻き戻しによって検索を行ないます。

ウェーブ形式デバイスで seek コマンドを使用した場合、その振る舞いはサンプリングサイズに依存します。サンプリングサイズが16ビット以上であるとき、指定された位置がサンプリングの開始点と一致しない場合には、最も近いサンプリング開始点に移動します。

対応情報

Windows 95 以降 / Windows NT 3.1 以降