Я делаю простое приложение с двумя веб-камерами, которые должны работать только на последнем Firefox. Локально он отлично работает:
- пользователю предлагается получить доступ к камере
- пользователь выбирает одну камеру
- пользователь снова запрашивается
- пользователь выбирает вторую камеру
- оба потока работают нормально
Однако, когда я загружаю его на сервер, который обслуживает страницу через HTTPS, доступ с первой камеры запоминается, и я получаю только два одинаковых потока.
Есть ли способ принудительно перенаправить запрос на HTTPS, чтобы пользователь мог выбрать другую камеру?
Это мой код:
function handleSuccess1(stream) {
video1.srcObject = stream; navigator.mediaDevices.getUserMedia(constraints).
then(handleSuccess2).catch(handleError);
} function handleSuccess2(stream) {
// this gets called automatically with the first stream
// without re-prompting the user
video2.srcObject = stream;
} const constraints = {
video: true
}; function handleError(error) {
console.error(error);
} navigator.mediaDevices.getUserMedia(constraints).
then(handleSuccess1).catch(handleError);
Используйте
navigator.mediaDevices.enumerateDevices()
, чтобы просмотреть доступные камеры и / или микрофоны.Подробнее об этом читайте здесь: https://developer.mozilla.org/en- США / документы / Web / API / MediaDevices / enumerateDevices
getUserMedia
?deviceId
вgetUserMedia
, как в этом примере: stackoverflow.com/a/33770656