cari

Rumah  >  Soal Jawab  >  teks badan

Apakah kekangan yang perlu saya lalui kepada getUserMedia() untuk mendapatkan dua mediaStreamTracks video?

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粉818317410P粉818317410397 hari yang lalu614

membalas semua(1)saya akan balas

  • P粉060528326

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

    balas
    0
  • Batalbalas