Partager via


Modèle d’appareil

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Les caméscopes IEEE 1394 et USB peuvent basculer entre le mode caméra et le mode magnétophone (VTR). Lorsqu’un caméscope IEEE 1394 bascule de mode, l’appareil se réinitialise et l’application doit l’énumérer à nouveau. Il n’existe aucun moyen pour une application de basculer le mode par programmation. Les caméscopes USB, en revanche, peuvent basculer entre les modes caméra et VTR sans réinitialisation, et l’application peut modifier le mode.

Pilote MSDV

Pour obtenir le mode actuel sur un appareil IEEE 1394, appelez la méthode IAMExtDevice::GetCapability avec la valeur ED_DEVCAP_DEVICE_TYPE. Si la méthode retourne la valeur ED_DEVTYPE_VCR, l’appareil est en mode VTR et dispose de fonctions telles que pause, arrêt, avance rapide et rembobinage. Sinon, si la méthode retourne ED_DEVTYPE_CAMERA, l’appareil est en mode caméra. L’exemple de code suivant montre comment interroger le type d’appareil :

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

Si le caméscope est mis hors connexion, vous devez l’interroger à nouveau lorsqu’il sera ensuite disponible. Le gestionnaire de graphe de filtres publie un événement EC_DEVICE_LOST lorsque l’appareil est supprimé.

Pilote UVC

Étant donné que les périphériques vidéo USB peuvent changer de mode sans réinitialisation, le code présenté dans les exemples précédents n’est pas fiable pour les périphériques USB. Utilisez plutôt l’interface ISelector pour obtenir le mode actuel. Vous pouvez également utiliser cette interface pour changer de mode par programme si l’appareil le prend en charge.

Contrôle d’un caméscope DV