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.
Zugehörige Themen