Gerätemodus

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

IEEE 1394- und USB-Camcorder können zwischen Kameramodus und Videobandrekordermodus (VTR) wechseln. Wenn ein IEEE 1394-Camcorder den Modus wechselt, wird das Gerät zurückgesetzt, und die Anwendung muss es erneut aufzählen. Es gibt keine Möglichkeit für eine Anwendung, den Modus programmgesteuert zu wechseln. USB-Camcorder hingegen können ohne Zurücksetzen zwischen Kamera- und VTR-Modus wechseln, und die Anwendung kann den Modus ändern.

MSDV-Treiber

Um den aktuellen Modus auf einem IEEE 1394-Gerät abzurufen, rufen Sie die IAMExtDevice::GetCapability-Methode mit dem Wert ED_DEVCAP_DEVICE_TYPE auf. Wenn die Methode den Wert ED_DEVTYPE_VCR zurückgibt, befindet sich das Gerät im VTR-Modus und verfügt über Funktionen wie Anhalten, Beenden, Fast-Forward und Zurückspulen. Andernfalls befindet sich das Gerät im Kameramodus, wenn die Methode ED_DEVTYPE_CAMERA zurückgibt. Im folgenden Codebeispiel wird gezeigt, wie Sie den Gerätetyp abfragen:

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.
    }
}

Wenn der Camcorder offline geschaltet wird, sollten Sie ihn erneut abfragen, wenn er als Nächstes verfügbar ist. Der Filtergraph-Manager sendet ein EC_DEVICE_LOST-Ereignis , wenn das Gerät entfernt wird.

UVC-Treiber

Da USB-Videogeräte den Modus ohne Zurücksetzen wechseln können, ist der in den vorherigen Beispielen gezeigte Code für USB-Geräte nicht zuverlässig. Verwenden Sie stattdessen die ISelector-Schnittstelle , um den aktuellen Modus abzurufen. Sie können diese Schnittstelle auch verwenden, um die Modi programmgesteuert zu wechseln, wenn das Gerät dies unterstützt.

Steuern eines DV-Camcorders