Rumah > Soal Jawab > teks badan
Saya boleh mendapatkan mediaDevices jenis "videoinput" melalui navigator.mediaDevices.enumerateDevices()
Janji.
Saya boleh mendapatkan mediaStream melalui navigator.mediaDevices.getUserMedia(constraints)
janji.
Untuk mempunyai dua runut video dalam userMedia, apakah yang sepatutnya constraints
kelihatan?
P粉0605283262023-10-24 00:02:22
Anda boleh mendapatkan paling banyak satu runut video dan satu runut audio setiap kali anda membuat panggilan getUserMedia()
, tetapi ia boleh dipanggil beberapa kali. Walau bagaimanapun, ini mungkin bertanya kepada pengguna beberapa kali, bergantung pada https, penyemak imbas dan tindakan pengguna.
Ikuti standard (pada masa ini memerlukan adapter.js dalam Chrome), untuk mendapatkan peranti "videoinput" tertentu, gunakan deviceId
约束将其 deviceId
传递到 getUserMedia
dalam:
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));Kata kunci
exact
memerlukan kekangan, memastikan ia hanya mengembalikan kekangan yang betul, jika tidak, ia gagal.
Jika anda mahukan dua kamera, anda perlu menggunakan yang berbeza deviceId
再次调用 getUserMedia
dan berharap sistem pengendalian yang anda gunakan menyokongnya (cth. telefon biasanya tidak).