Modalità dispositivo
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
IEEE 1394 e videocamere USB possono passare dalla modalità fotocamera alla modalità videoregistratore (VTR). Quando un commutatore IEEE 1394 esegue la reimpostazione del dispositivo e l'applicazione deve enumerarla di nuovo. Non è possibile che un'applicazione cambi la modalità a livello di codice. Le videocamere USB, d'altra parte, possono passare tra la fotocamera e le modalità VTR senza reimpostare e l'applicazione può modificare la modalità.
MSDV Driver
Per ottenere la modalità corrente in un dispositivo IEEE 1394, chiamare il metodo IAMExtDevice::GetCapability con il valore ED_DEVCAP_DEVICE_TYPE. Se il metodo restituisce il valore ED_DEVTYPE_VCR, il dispositivo è in modalità VTR e dispone di funzioni come pausa, arresto, inoltro rapido e riavvolgimento. In caso contrario, se il metodo restituisce ED_DEVTYPE_CAMERA, il dispositivo è in modalità fotocamera. Nell'esempio di codice seguente viene illustrato come eseguire query sul tipo di dispositivo:
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.
}
}
Se la videocamera va offline, è consigliabile eseguirla di nuovo quando diventa disponibile. Gestione grafici filtro pubblica un evento EC_DEVICE_LOST quando il dispositivo viene rimosso.
UVC Driver
Poiché i dispositivi video USB possono cambiare modalità senza reimpostare, il codice mostrato negli esempi precedenti non è affidabile per i dispositivi USB. Usare invece l'interfaccia ISelector per ottenere la modalità corrente. È anche possibile usare questa interfaccia per cambiare modalità a livello di codice se il dispositivo lo supporta.
Argomenti correlati