Freigeben über


Gerätemodus

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

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

MSDV-Treiber

Rufen Sie zum Abrufen des aktuellen Modus auf einem IEEE 1394-Gerät 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, Anhalten, Schnelleinstieg und Zurückspulen. Andernfalls befindet sich das Gerät im Kameramodus, wenn die Methode ED_DEVTYPE_CAMERA zurückgibt. Das folgende Codebeispiel zeigt, 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 ist, sollten Sie ihn erneut abfragen, wenn es als Nächstes verfügbar wird. Der Filterdiagramm-Manager stellt ein EC_DEVICE_LOST Ereignis bereit, wenn das Gerät entfernt wird.

UVC-Treiber

Da USB-Videogeräte Modi wechseln können, ohne dass sie zurückgesetzt werden müssen, 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 es vom Gerät unterstützt wird.

Steuern eines DV-