Je peux obtenir des appareils multimédias de type « entrée vidéo » via navigator.mediaDevices.enumerateDevices() Promesse.
Je peux obtenir mediaStream via navigator.mediaDevices.getUserMedia(constraints)promis.
Pour avoir deux pistes vidéo dans userMedia, à quoi devrait constraints ressembler ?
Vous pouvez obtenir au maximum une piste vidéo et une piste audio à chaque fois que vous appelez
getUserMedia(), mais elle peut être appelée plusieurs fois. Cependant, cela peut demander à l'utilisateur plusieurs fois, en fonction de https, du navigateur et des actions de l'utilisateur.Suivez la standard (nécessite actuellement adapter.js dans Chrome), pour obtenir un périphérique "d'entrée vidéo" spécifique, utilisez
deviceId约束将其deviceId传递到getUserMediadans :navigator.mediaDevices.enumerateDevices() .then(devices => { var camera = devices.find(device => device.kind == "videoinput"); if (camera) { var constraints = { deviceId: { exact: camera.deviceId } }; return navigator.mediaDevices.getUserMedia({ video: constraints }); } }) .then(stream => video.srcObject = stream) .catch(e => console.error(e));Le mot-cléexactrend la contrainte obligatoire, garantissant qu'elle ne renvoie que la bonne contrainte, sinon elle échoue.Si vous voulez deux caméras, vous devrez en utiliser une différente
deviceId再次调用getUserMediaet espérer que le système d'exploitation que vous utilisez le prend en charge (par exemple, les téléphones ne le font généralement pas).