共用方式為


播放裝置

播放 (MCI_PLAY) 命令會開始播放裝置。 如果沒有任何旗標,此命令就會從目前的位置開始播放,並播放直到命令中斷或到達媒體或檔案結尾為止。 播放之後,目前的位置會位於媒體的結尾。 您也可以使用 seek (MCI_SEEK) 命令來變更目前的位置。

大部分支援 播放 命令的裝置也支援「from」 (MCI_FROM) 和 「to」 (MCI_TO) 旗標。 這些旗標表示裝置應該啟動和停止播放的位置。 例如,下列命令會使用 mciSendString 函式,從第一個曲目開頭播放 CD 音訊光碟:

mciSendString("play cdaudio from 0", lpszReturnString, 
    lstrlen(lpszReturnString), NULL);

某些裝置類型會擴充此命令,以利用特定裝置的功能。 例如,videodisc裝置類型的播放命令包含「快速」 (MCI_VD_PLAY_FAST) 、「慢」 (MCI_VD_PLAY_SLOW) 和「掃描」 (MCI_VD_PLAY_SCAN) 旗標。

注意

指派給位置值的單位取決於裝置所使用的時間格式。 每個裝置都有預設的時間格式,但您應該先使用 set (MCI_SET) 命令來指定時間格式,再發出任何使用位置值的命令。

 

播放 AVI 檔案

Windows 中的視訊檔案是由至少兩個交錯的資料流程所組成:視訊 (影像) 資料流程和音訊資料流程。 您可以使用 MCI 命令,輕鬆地播放這些音訊視訊交錯 (AVI) 檔案。 下列各節將討論如何播放 AVI 檔案。

設定 MCIAVI 播放視窗

您的應用程式可以指定下列選項來定義播放 AVI 檔案的播放視窗:

  • 使用 MCIAVI 驅動程式的預設快顯視窗。
  • 指定 MCIAVI 驅動程式可用來建立播放視窗的父視窗和視窗樣式。
  • 為 MCIAVI 驅動程式指定用於播放的播放視窗。
  • 在全螢幕顯示器上播放 AVI 檔案。

如果您的應用程式未指定任何視窗選項,MCIAVI 驅動程式會建立用來播放序列的預設視窗。 驅動程式會為開啟的 (MCI_OPEN) 命令建立此播放視窗,但除非您的應用程式傳送命令來顯示視窗或播放檔案,否則不會顯示視窗。 這個預設播放視窗是具有調整大小框線、標題列、粗框架、 視窗 功能表和最小化按鈕的快顯視窗。

當應用程式發出 開啟 命令時,也可以指定父視窗控制碼和視窗樣式。 在此情況下,MCIAVI 驅動程式會根據這些規格建立視窗,而不是預設快顯視窗。 您的應用程式可以指定 CreateWindow 函式可用的任何視窗樣式。 需要父視窗的樣式,例如WS_CHILD,應該包含父視窗控制碼。

您的應用程式也可以建立自己的視窗,並使用 視窗 (MCI_WINDOW) 命令來提供 MCIAVI 驅動程式的控制碼。 MCIAVI 驅動程式會使用此視窗,而不是建立自己的視窗。

當 MCIAVI 驅動程式建立播放視窗或從您的應用程式取得視窗控制碼時,它不會顯示視窗,直到您的應用程式播放序列或傳送命令以顯示視窗為止。 您的應用程式可以使用 window 命令來顯示視窗,而不播放序列。 例如,下列命令會使用 mciSendString顯示視窗:

mciSendString("window movie state show", lpszReturnString,
    lstrlen(lpszReturnString), NULL);

在此範例中,「movie」 是數位視訊裝置的別名。

您的應用程式也可以全螢幕播放 AVI 檔案。 若要播放全螢幕,請使用 「fullscreen」 (MCI_MCIAVI_PLAY_FULLSCREEN) 旗標修改播放 (MCI_PLAY) 命令。 當您的應用程式使用此旗標時,MCIAVI 驅動程式會使用 320 x 240 圖元的全螢幕格式播放序列。 例如,下列命令會使用 「movie」 作為別名) 播放已開啟的檔案全螢幕 (:

mciSendString("play movie fullscreen", lpszReturnString,
    lstrlen(lpszReturnString), NULL);

變更 AVI 檔案的播放狀態

您的應用程式可以使用 seek (MCI_SEEK) 命令,將目前的位置移至 AVI 檔案中的開頭、結尾或任意位置。 MCIAVI 驅動程式有兩種搜尋模式:精確且不精確。 您的應用程式可以使用 set (MCI_SET) 命令來變更搜尋模式。 當您使用 設定 「完全開啟搜尋」時,MCIAVI 驅動程式會完全符合應用程式指定的框架。 如果檔案暫時壓縮,且您的應用程式未指定主要畫面格,這可能會導致延遲。 當您使用 設定 「完全關閉搜尋」時,MCIAVI 驅動程式會在時態壓縮檔案中搜尋最接近的主要畫面格。

某些 MCI 命令可讓您的應用程式以其他方式改變 AVI 檔案的播放。 例如,根據預設,AVI 檔案會以正常速度播放,但您的應用程式可以使用 「speed」 旗標搭配 set 命令來增加或減少此速度。 對於 AVI 檔案,速度值為 1000 是典型的。 因此,若要以一半的一般速度播放電影,您的應用程式可以使用命令 「電影速度 500」;或者,它可以使用 設定 「電影速度 2000」,以兩倍的正常速度播放序列。

setaudio (MCI_SETAUDIO) 命令可讓您的應用程式控制 AVI 檔案的音訊部分。 您的應用程式可以在播放期間將音訊靜音,或在多個音訊串流檔案的情況下,選取所播放的音訊串流。

MCIAVI 驅動程式有一個對話方塊可控制其部分播放選項。 使用者可用的一些選項包括選取視窗導向或全螢幕播放、選取搜尋模式,以及縮放影像。 您的應用程式可以使用 設定 (MCI_CONFIGURE) 命令來顯示此對話方塊。

資料流程處理常式

AVI 檔案中的資料會被視為一系列資料流程。 AVI 檔案通常包含音訊和視訊串流,也可能有包含文字或其他自訂資料的自訂資料流程。 MCIAVI 驅動程式可以針對這些資料流程使用不同的處理常式。 如需自訂 AVI 檔案的詳細資訊,請參閱 自訂檔案和資料流程處理常式