Je dois utiliser getUserMedia
pendant que la vidéo est réglée pour enregistrer en 16: 9 résolution.Comment forcer un rapport 16: 9 avec getUserMedia sur tous les appareils?
Mon code fonctionne sur la plupart des ordinateurs de bureau et sur Android 7 et au-dessus:
navigator.getUserMedia({
audio: true,
video: {
mandatory: {
minWidth: 380,
minHeight: 214,
maxWidth: 380,
maxHeight: 214
}
}
})
Mais sur Android et 6 ci-dessous, et sur certains postes de travail aussi (ne peut pas comprendre exactement ce qui), getUserMedia
pauses et aucune image n'est disponible à partir de l'appareil photo.
Cela fonctionne sur tous les appareils et de bureau, mais avec un rapport de résolution par défaut de 4: 3, alors que je dois 16: 9:
navigator.getUserMedia({
audio: true,
video: true
})
J'ai essayé en omettant le mandatory
, pas de chance.
Pour ajouter à ma confusion, les appareils iOS (11 beta) et Android nécessitent passer l'argument facingMode
:
video: { facingMode: 'user' }
Ainsi, il semble que le passage des arguments width
et height
casse getUserMedia
sur certains ordinateurs de bureau et les appareils tels que Android 5 et 6.
Existe-t-il un moyen de forcer un rapport 16: 9 sur tous les appareils? Quelle est la méthode correcte et conventionnelle de capture d'une vidéo avec des dimensions spécifiques?
Il existe également un mot-clé appelé "exact". Avez-vous essayé celui-là? Voir ici: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia comment il est utilisé. – Bernd
Ouais, essayé aussi avec aucune chance @Bernd –