共用方式為


裝置模式

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對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 Camcorder