MCI_SET命令

注意

無偏差通訊 Microsoft 支援多元且包容性的環境。 在本檔中,有 'slave' 一詞的參考。 Microsoft Bias-Free通訊的樣式指南 會將這視為排除字組。 此字組是目前在命令中使用的字組。 為了一致性,本檔包含此字。 當此命令中改變此字時,我們會更正這份檔以對齊方式。

MCI_SET命令會設定裝置資訊。 CD 音訊、數位視訊、MIDI 循序器、VCR、videodisc、video-overlay 和電壓音訊裝置可辨識此命令。

若要傳送此命令,請使用下列參數呼叫 mciSendCommand 函式。

MCIERROR mciSendCommand(
  MCIDEVICEID wDeviceID, 
  MCI_SET, 
  DWORD dwFlags, 
  (DWORD) (LPMCI_SET_PARMS) lpSet
);

參數

wDeviceID

要接收命令訊息之 MCI 裝置的裝置識別碼。

dwFlags

MCI_NOTIFY、MCI_WAIT或數位視訊和 VCR 裝置MCI_TEST。 如需這些旗標的相關資訊,請參閱 Wait、Notify 和 Test Flags

lpSet

MCI_SET_PARMS結構的指標。 (具有擴充命令集的裝置,可能會以裝置特定的結構取代此結構。)

傳回值

如果成功或發生錯誤,則傳回零。

備註

下列其他旗標適用于支援MCI_SET的所有裝置:

MCI_SET_AUDIO

音訊通道號碼包含在 lpSet所識別結構的 dwAudio 成員中。 此旗標必須與MCI_SET_ON或MCI_SET_OFF搭配使用。 使用下列其中一個常數來指出通道號碼:

MCI_SET_AUDIO_ALL

所有音訊通道。

MCI_SET_AUDIO_LEFT

左通道。

MCI_SET_AUDIO_RIGHT

右通道。

MCI_SET_DOOR_CLOSED

如果有任何) ,請關閉媒體涵蓋範圍 (。

MCI_SET_DOOR_OPEN

如果有任何) ,請開啟媒體涵蓋範圍 (。

MCI_SET_OFF

停用指定的視訊或音訊通道。

MCI_SET_ON

啟用指定的視訊或音訊通道。

MCI_SET_TIME_FORMAT

時間格式參數包含在lpSet所識別結構的dwTimeFormat成員中。 下列旗標會與這個旗標搭配使用:

MCI_FORMAT_BYTES

在 PCM (Pulse Code Protection) 資料格式內,將時間成員描述變更為輸入或輸出的位元組。 由 waveaudio 裝置類型辨識。

MCI_FORMAT_FRAMES

後續的命令會使用框架。 由 digitalvideovcrvideodisc裝置類型辨識。

MCI_FORMAT_HMS

將時間格式變更為小時、分鐘和秒。 由 vcrvideodisc 裝置類型辨識。

MCI_FORMAT_MILLISECONDS

將時間格式變更為毫秒。 由所有裝置類型辨識。

MCI_FORMAT_MSF

將時間格式變更為分鐘、秒和框架。 由 cdaudiovcr 裝置類型辨識。

MCI_FORMAT_SAMPLES

將時間格式變更為輸入或輸出的範例。 由 waveaudio 裝置類型辨識。

MCI_FORMAT_SMPTE_24、MCI_FORMAT_SMPTE_25和MCI_FORMAT_SMPTE_30

將時間格式分別設定為 24、25 和 30 框架 SMPTE (電影與電視工程師社會) 。 排序器和vcr裝置類型可辨識。

MCI_FORMAT_SMPTE_30DROP

將時間格式設定為 30 個置放框架 SMPTE。 排序器和vcr裝置類型可辨識。

MCI_FORMAT_TMSF

將時間格式變更為追蹤、分鐘、秒和框架。 (MCI 會使用 cdaudiovcr 裝置類型所辨識的連續追蹤數位。) 。

MCI_SET_VIDEO

設定或關閉視訊訊號。 此旗標必須與MCI_SET_ON或MCI_SET_OFF搭配使用。 沒有視訊傳回MCIERR_UNSUPPORTED_FUNCTION的裝置。

下列其他旗標會搭配 digitalvideo 裝置類型使用:

MCI_DGV_SET_FILEFORMAT

檔案格式參數包含在lpSet所識別結構的dwFileFormat成員中。 對於數位視訊裝置,檔案格式會用於儲存或擷取命令。 如果省略,這可能預設為裝置驅動程式定義的格式。 如果指定的檔案格式與目前選取的演算法和品質衝突,則會變更為檔案格式的預設值。 定義下列檔案格式常數:

MCI_DGV_FF_AVI

AVI 格式。

MCI_DGV_FF_AVSS

AVSS 格式。

MCI_DGV_FF_DIB

DIB 格式。

MCI_DGV_FF_JFIF

JFIF 格式。

MCI_DGV_FF_JPEG

JPEG 格式。

MCI_DGV_FF_MPEG

MPEG 格式。

MCI_DGV_FF_RDIB

RLE DIB 格式。

MCI_DGV_FF_RJPEG

RJPEG 格式。

MCI_DGV_SET_SEEK_EXACTLY

設定用於定位的格式。 這個旗標必須與MCI_SET_ON或MCI_SET_OFF搭配使用。 如果指定MCI_SET_ON,則播放或錄製會精確地存取以 MCI_FROM 旗標指定的畫面。 如果所要求的畫面格不是主要畫面格,這可能會增加一些額外的延遲。 如果指定了MCI_SET_OFF,裝置會搜尋位於要求畫面格之前的主要畫面格影像。 對於某些檔案和裝置,這可能是檔案的第一個框架。 此旗標的預設值取決於裝置。

MCI_DGV_SET_SPEED

速度參數包含在lpSet所識別結構的dwSpeed成員中。 速度會指定為標準畫面播放速率與所需畫面播放速率之間的比率,其中所指定之標準畫面播放速率為 1000。 半速為 500,而雙速度為 2000。 允許的速度範圍也取決於裝置,也可能是檔案。

MCI_DGV_SET_STILL

搭配 MCI_DGV_SET_FILEFORMAT 使用時,MCI_SET設定用於擷取命令的檔案格式。

對於數位視訊裝置, lpSet 參數會指向 MCI_DGV_SET_PARMS 結構。

下列其他旗標會與 Sequencer 裝置類型搭配使用:

MCI_SEQ_FORMAT_SONGPTR

將時間格式設定為歌曲指標單位。

MCI_SEQ_SET_MASTER

將排序器設定為同步處理資料的來源,並指出同步處理的類型是在lpSet所識別結構的dwMaster成員中指定。 MCISEQ 會傳回MCIERR_UNSUPPORTED_FUNCTION。 下列常數是針對同步處理類型所定義的:

MCI_SEQ_MIDI

排序器會傳送 MIDI 格式同步處理資料。

MCI_SEQ_SMPTE

排序器會傳送 SMPTE 格式同步處理資料。

MCI_SEQ_NONE

排序器不會傳送同步處理資料。

MCI_SEQ_SET_OFFSET

將序列的 SMPTE 位移變更為lpSet所識別之結構的dwOffset成員所指定的位移。 這只會影響具有 SMPTE 除法類型的序列。

MCI_SEQ_SET_PORT

將序列的輸出 MIDI 埠設定為lpSet所識別結構之 dwPort成員中 MIDI 裝置識別碼所指定的輸出 MIDI 埠。 如果有任何) ,裝置會關閉先前的埠 (,並嘗試開啟並使用新的埠。 如果失敗,它會傳回錯誤,並在有任何) 時重新開啟先前使用的埠 (。 下列常數是針對埠所定義的:

MCI_SEQ_NONE

如果有任何) ,請關閉先前使用的埠 (。 排序器的行為與埠開啟的行為完全相同,但未傳送 MIDI 訊息。

MIDI_MAPPER

將開啟的埠設定為 MIDI 對應程式。

MCI_SEQ_SET_SLAVE

設定排序器以接收同步處理資料,並指出同步處理的類型是在lpSet所識別結構的dwTypee成員中指定。 MCISEQ 會傳回MCIERR_UNSUPPORTED_FUNCTION。 下列常數是針對同步處理類型所定義的:

MCI_SEQ_FILE

設定排序器以接收 MIDI 檔案中包含的同步處理資料。

MCI_SEQ_MIDI

設定排序器以接收 MIDI 同步處理資料。

MCI_SEQ_NONE

將排序器設定為忽略 MIDI 資料流程中的同步處理資料。

MCI_SEQ_SMPTE

設定排序器以接收 SMPTE 同步處理資料。

MCI_SEQ_SET_TEMPO

將 MIDI 序列的暫存變更為lpSet所指向之結構的dwTempo成員所指定的暫存。 對於具有除法類型 PPQN 的序列,tempo 會以每分鐘的節數指定;針對具有除法類型 SMPTE 的序列,tempo 會在每秒畫面格中指定。

對於 Sequencer 裝置, lpSet 參數會指向 MCI_SEQ_SET_PARMS 結構。

下列額外的旗標會搭配 vcr 裝置類型使用:

MCI_VCR_SET_ASSEMBLE_RECORD

將裝置設定為在元件關閉、插入已開啟,反之亦然) 時,將裝置記錄在元件或插入模式 (。 搭配下列其中一個旗標使用:

MCI_SET_ON

設定元件記錄開啟,並關閉插入記錄。 記錄所有視訊、音訊和時間碼曲目。

MCI_SET_OFF

將元件記錄設定為關閉,然後開啟插入記錄。 當組合錄製關閉時,可以選取個別的視訊、音訊和時間碼曲目進行錄製。

MCI_VCR_SET_CLOCK

lpSet所識別結構的dwClock成員包含新的時鐘時間。

MCI_VCR_SET_COUNTER_FORMA

lpSet所識別結構的dwCounterFormat成員包含常數,指定狀態計數器要使用的新計數器時間格式。 如需有效常數的清單,請參閱此命令的其他旗標清單中MCI_SET_TIME_FORMAT。

MCI_VCR_SET_COUNTER_VALUE

lpSet所識別結構的dwCounterValue成員包含新的計數器值。

MCI_VCR_SET_INDEX

lpSet所識別結構的dwIndex成員包含常數,指出螢幕上顯示的內容,而且必須是下列其中一項:

MCI_VCR_INDEX_COUNTER

顯示計數器。

MCI_VCR_INDEX_DATE

顯示日期。

MCI_VCR_INDEX_TIME

顯示時間。

MCI_VCR_INDEX_TIMECODE

顯示 timecode。

如需詳細資訊,請參閱 MCI_INDEX 命令。

MCI_VCR_SET_PAUSE_TIMEOUT

lpSet所識別結構的dwPauseTimeout成員包含暫停命令的最大持續時間,以毫秒為單位。

MCI_VCR_SET_POSTROLL_DURATION

lpSet所識別結構的dwPostrollDuration成員包含目前時間格式的視訊工作長度,在發出停止或暫停命令時,需要停止或暫停 VCR 傳輸。

MCI_VCR_SET_POWER

設定電源開啟或關閉。 必須搭配下列其中一個旗標使用:

MCI_SET_OFF

關閉電源。

MCI_SET_ON

開啟電源。

MCI_VCR_SET_PREROLL_DURATION

lpSet所識別結構的dwPrerollDuration成員包含目前時間格式的視訊工作長度,以穩定 VCR 輸出所需的時間格式。

MCI_VCR_SET_RECORD_FORMAT

lpSet所識別結構的dwRecordFormat成員包含描述記錄速度的常數,這必須是下列其中一項:

MCI_VCR_FORMAT_EP

速度緩慢的記錄。

MCI_VCR_FORMAT_LP

以中速度緩慢的記錄。

MCI_VCR_FORMAT_SP

以標準速度記錄。

MCI_VCR_SET_SPEED

lpSet所識別結構的dwSpeed成員包含新的速度設定,其中 1000 是標準速度、2000 是雙速度,而 500 是半速等等。

MCI_VCR_SET_TAPE_LENGTH

lpSet識別之結構的dwTapeLength成員包含磁帶的新長度,前提是磁帶的長度無法偵測。

MCI_VCR_SET_TIME_MODE

lpSet所識別結構的dwTimeMode成員包含常數,指出新的位置時間模式。 下列常數有效:

MCI_VCR_TIME_COUNTER

強制裝置獨佔使用計數器。

MCI_VCR_TIME_DETECT

每次將新的視訊播放片插入裝置,或模式從尚未準備好變更為就緒時,裝置應該嘗試判斷視訊播放片上是否有可用的時間碼。 如果有 timecode 可用,請在指定位置的所有後續命令中使用 timecode。 否則,請使用計數器。

MCI_VCR_TIME_TIMECODE

強制裝置獨佔使用 timecode。

MCI_VCR_SET_TRACKING

微調 VCR 磁帶傳輸的速度,而且必須搭配下列其中一個旗標使用:

MCI_VCR_PLUS

增加磁帶傳送速率。

MCI_VCR_MINUS

減少磁帶傳送速率。

MCI_VCR_RESET

將追蹤調整傳回為零。

若為 VCR 裝置, lpSet 參數會指向 MCI_VCR_SET_PARMS 結構。

下列額外旗標會與 videodisc 裝置類型搭配使用:

MCI_VD_FORMAT_TRACK

將時間格式變更為追蹤。 MCI 使用連續追蹤數位。

下列額外的旗標會與 waveaudio 裝置類型搭配使用:

MCI_WAVE_INPUT

將用於錄製的輸入設定為lpSet所識別結構的wInput成員。

MCI_WAVE_OUTPUT

設定用來播放至lpSet所識別結構的wOutput成員的輸出。

MCI_WAVE_SET_ANYINPUT

任何與目前格式相容的波浪輸入都可用於錄製。

MCI_WAVE_SET_ANYOUTPUT

任何與目前格式相容的波浪輸出都可用於播放。

MCI_WAVE_SET_AVGBYTESPERSEC

設定每秒用於播放、錄製及儲存至lpSet所識別結構的nAvgBytesPerSec成員的位元組。

MCI_WAVE_SET_BITSPERSAMPLE

設定每個範例用於播放、錄製和儲存至lpSet所識別 PCM 資料格式的 nBitsPerSample成員的位數。

MCI_WAVE_SET_BLOCKALIGN

設定區塊對齊,用於播放、錄製及儲存至lpSet所識別結構的nBlockAlign成員。

MCI_WAVE_SET_CHANNELS

通道數目會在lpSet所識別結構的nChannels成員中指出。

MCI_WAVE_SET_FORMATTAG

設定用來播放、錄製及儲存至lpSet所識別結構的wFormatTag成員的格式類型。 指定WAVE_FORMAT_PCM會將格式變更為 PCM。

MCI_WAVE_SET_SAMPLESPERSEC

設定每秒用於播放、錄製和儲存至lpSet所識別結構的nSamplesPerSec成員的樣本。

對於電壓音訊裝置, lpSet 參數會指向 MCI_WAVE_SET_PARMS 結構。

建立儲存資料的檔案時,會定義數個波音訊資料的屬性。 這些屬性描述資料在檔案內的結構方式,而且在錄製開始之後便無法變更。 下列旗標清單會識別這些屬性:

  • MCI_WAVE_SET_AVGBYTESPERSEC
  • MCI_WAVE_SET_BITSPERSAMPLE
  • MCI_WAVE_SET_BLOCKALIGN
  • MCI_WAVE_SET_CHANNELS
  • MCI_WAVE_SET_FORMATTAG
  • MCI_WAVE_SET_SAMPLESPERSEC

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限桌面應用程式]
標頭
Mmsystem.h (包含 Windows.h)

另請參閱

MCI

MCI 命令