Проблема с доступом к камере на мобильном телефоне Firefox - PullRequest
0 голосов
/ 22 ноября 2018

В своем веб-приложении для мобильных устройств я хочу показать мобильную камеру с помощью мобильного браузера Firefox, я использую nodejs с экспресс-сервером в качестве сервера и подключаюсь к серверу через локальный хост со своим смартфоном.Браузер Firefox запрашивает доступ к камере, я не получаю никакой ошибки, но все еще не вижу вывод камеры.Когда я тестирую его на рабочем столе Chrome, все работает нормально.

Есть код:

index.html

    <!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Documentl</title>
        <base href="/">
        <link rel="stylesheet" type="text/css" href ="main.css" >
    </head>

    <body>
        <p id="demo"></p>
        <div class="booth">
            <video id= "video" autoplay></video>
        </div>

        <!--<script src = "script.js"></script>-->
        <script>
            (function(){
                var video = document.getElementById("video"),
                    vendorUrl = window.URL || window.webkitURL;

                navigator.getMedia =    navigator.getUserMedia ||
                                        navigator.webkitGetUserMedia ||
                                        navigator.mozGetUserMedia ||
                                        navigator.msGetUserMedia;

                navigator.getMedia({
                    video: {exact: "environment",
                            width: 1280,
                            height: 720 },

                    audio: false
                }, function(stream) {
                    document.getElementById("demo").innerHTML = stream;
                    video.src = vendorUrl.createObjectURL(stream);
                    video.play();
                }, function(err){
                    document.getElementById("demo").innerHTML = err.message;
                });
            })();
        </script>
    </body>
</html>

server.js

    const express = require('express')
const app = express()
const port = 3000

app.use(express.static(__dirname + '/'));
app.get('/', (req, res) => res.sendfile('index.html'))

app.listen(port, () => console.log(`listening on port ${port}!`))

Я не использовал chrome mobile, потому что «здесь разрешены только безопасные источники»

версии:

nodejs - v8.10.0 express - 4.16.4 mobile Firefox - 63.0.2desktop chrome - 69.0.3497.100

У кого-нибудь есть идеи, как решить проблему?Если что-то неясно, задавайте вопросы.

1 Ответ

0 голосов
/ 22 ноября 2018

Для последних браузеров вам необходимо установить srcObject для MediaStreams.URL объекта больше не работает.Попробуйте это:

video.srcObject = stream;

У вас должна быть такая же проблема и в Chrome ... если нет, то скоро вы получите обновление.

См. Также: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...