Mode appareil
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngineet audio/vidéo capture dans 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 capture audio/vidéo dans Media Foundation au lieu de directShow, lorsque cela est 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 enregistreur de bande vidéo (VTR). Lorsqu’un camcordeur IEEE 1394 bascule les modes, l’appareil est réinitialisé et l’application doit l’énumérer à nouveau. Il n’existe aucun moyen pour une application de changer le mode par programmation. Les caméscopes USB, d’autre part, peuvent basculer entre les modes caméra et VTR sans réinitialisation, et l’application peut modifier le mode.
du 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 la pause, l’arrêt, l’avance rapide et le 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 camcordeur est hors connexion, vous devez l’interroger à nouveau lorsqu’il devient ensuite disponible. Le gestionnaire de graphiques de filtre publie un événement EC_DEVICE_LOST lorsque l’appareil est supprimé.
du pilote UVC
Étant donné que les périphériques vidéo USB peuvent changer de mode sans réinitialisation, le code indiqué 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 programmation si l’appareil le prend en charge.
Rubriques connexes
-
Contrôle d’un DV Camcorder