共用方式為


裝置模式

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

IEEE 1394 和 USB 攝影機可以在相機模式和錄像帶錄製器 (VTR) 模式之間切換。 當 IEEE 1394 攝影機切換模式時,裝置重設,應用程式必須再次列舉它。 應用程式無法以程式設計方式切換模式。 另一方面,USB 攝影機可以在相機和 VTR 模式之間切換,而不需要重設,而且應用程式可以變更模式。

MSDV 驅動程式

若要在 IEEE 1394 裝置上取得目前模式,請使用值ED_DEVCAP_DEVICE_TYPE呼叫 IAMExtDevice::GetCapability 方法。 如果方法傳回值ED_DEVTYPE_VCR,裝置會處於 VTR 模式,且具有暫停、停止、快速轉送和倒轉等功能。 否則,如果方法傳回ED_DEVTYPE_CAMERA,裝置會處於相機模式。 下列程式代碼範例示範如何查詢裝置類型:

if (MyDevCap.bHasDevice) 
{
    LONG lDeviceType = 0;
    MyDevCap.pDevice->GetCapability(ED_DEVCAP_DEVICE_TYPE, &lDeviceType, 0);

    if (lDeviceType == ED_DEVTYPE_VCR) 
    {
        // Device is a VTR. Enable all VTR functions.
    }
    else 
    {
        // Device is a camera. 
        // Enable record and record-pause; disable other functions.
    }
}

如果攝影機離線,您應該在下一次可用時再次查詢它。 篩選圖表管理員會在移除裝置時張貼 EC_DEVICE_LOST 事件。

UVC 驅動程式

由於USB視訊裝置可以切換模式而不重設,因此先前範例中顯示的程式代碼對於USB裝置而言並不可靠。 請改用 ISelector 介面來取得目前的模式。 如果裝置支援模式,您也可以使用此介面以程序設計方式切換模式。

控制 DV 攝影機