HTML5: доступ к камере - PullRequest
       49

HTML5: доступ к камере

38 голосов
/ 24 февраля 2012

Я новичок в HTML5.Я пытаюсь использовать следующий код HTML5 для доступа к камере на моем мобильном телефоне.Всегда отображается «Собственная веб-камера не поддерживается» .Похоже, что мой мобильный браузер (браузер Safari и Android 2.1) не поддерживает камеру.

Не могли бы вы сказать, какой браузер я должен использовать для доступа к камере?

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, maximum-scale=1.0">
    <style>
        body {width: 100%;}
        canvas {display: none;}
    </style>
    <script>
        var video, canvas, msg;
        var load = function () {
            video  = document.getElementById('video');
            canvas = document.getElementById('canvas');
            msg    = document.getElementById('error');
            if( navigator.getUserMedia ) {
                video.onclick = function () {
                    var context = canvas.getContext("2d");
                    context.drawImage(video, 0, 0, 240, 320);
                    var image = {"demo" : {
                        "type"  : "device",
                        "image" : canvas.toDataURL("image/png")
                    }};
                };

                var success = function ( stream ) {
                    video.src = stream;
                };

                var error = function ( err ) {
                    msg.innerHTML = "Error: " + err.code;
                };

                navigator.getUserMedia('video', success, error);

            } else {
                msg.innerHTML = "Native web camera not supported :(";
            }

        };

        window.addEventListener('DOMContentLoaded', load, false);
    </script>
</head>
<body>
    <video  id="video" width="240" height="320" autoplay> </video>
    <p      id="error">Click on the video to send a snapshot to the receiving screen</p>
    <canvas id="canvas" width="240" height="320"> </canvas>
</body>
</html>

Ответы [ 9 ]

40 голосов
/ 24 февраля 2012

Метод getUserMedia теперь поддерживается в Firefox 17+, Chrome 23+ и Opera 12+.(См. caniuse.com )

Screenshot of the CanIUse.com support grid as of 2/24/12

14 голосов
/ 01 октября 2012

Работает на мобильных устройствах Firefox, Chrome, iPhone и Android:

<input type="file" id="mypic" accept="image/*">
5 голосов
/ 20 марта 2015
<input type="file" accept="image/*;capture=camera">

См. Захват аудио и видео в HTML5

Поддержка:

  • Браузер Android 3.0 - одна из первых реализаций.Посмотрите это видео, чтобы увидеть его в действии.
  • Chrome для Android (0,16)
  • Firefox Mobile 10,0
  • iOS6 Safari и Chrome (частичная поддержка)
5 голосов
/ 07 августа 2013

У нас был некоторый успех с этим базовым подходом, объединенным по всей сети:

<form method="post" action="takephoto.php" enctype="multipart/form-data">
<input type="file" accept="image/*" name="file">
<input type="submit">
</form>

Затем в файле PHP мы генерируем уникальные имена файлов, используя now () или что-то подобное для хранения.

3 голосов
/ 10 января 2014

Я только недавно начал работать с инструментом под названием Bridgeit.

Это сочетание JavaScript в браузере и приложения на телефоне.Кажется, до сих пор это работает очень хорошо.

http://bridgeit.mobi/

3 голосов
/ 24 февраля 2012

Я думаю, что Opera - единственный мобильный браузер, который поддерживает это расширение HTML5.

См. Примечание автора к этой теме;

http://francisshanahan.com/index.php/2011/stream-a-webcam-using-javascript-nodejs-android-opera-mobile-web-sockets-and-html5/

1 голос
/ 04 апреля 2012

Opera Desktop, Opera mobile и Chrome (после изменения некоторых настроек) поддерживают доступ к камере и микрофону в формате HTML5.

0 голосов
/ 23 апреля 2019

HTML5 добавил поддержку доступа к камере, вы можете использовать его следующим образом:

<input type="file" accept="image/*" capture> <input type="file" accept="image/*" capture="user"> <input type="file" accept="image/*" capture="environment">

Где user для передней камеры и environment для задней камеры.

0 голосов
/ 24 июня 2013

Вы можете использовать Chrome для Android, включив флаг «Включить WebRTC» в chrome: // flags

Я протестировал на своем телефоне Android доступ к камере на странице html5, и она работает.

...