PHP-显示移动相机以捕获QR码

时间:2018-12-19 02:58:32

标签: javascript php jquery html qr-code

我想在表格上显示手机的相机。但是我现在所拥有的只是相机仅显示在台式机的网页上,而不显示在移动电话的网页上,为什么?为什么我无法访问手机的相机?请帮忙,谢谢,这里是 webcam.js

的代码
var WebCodeCamJS = function(element) {
'use strict';
this.Version = {
    name: 'WebCodeCamJS',
    version: '2.7.0',
    author: 'Tóth András',
};
var mediaDevices = window.navigator.mediaDevices;
mediaDevices.getUserMedia = function(c) {
    return new Promise(function(y, n) {
        (window.navigator.getUserMedia || window.navigator.mozGetUserMedia || window.navigator.webkitGetUserMedia).call(navigator, c, y, n);
    });
}
HTMLVideoElement.prototype.streamSrc = ('srcObject' in HTMLVideoElement.prototype) ? function(stream) {
    this.srcObject = !!stream ? stream : null;
} : function(stream) {
    if (!!stream) {
        this.src = (window.URL || window.webkitURL).createObjectURL(stream);
    } else {
        this.removeAttribute('src');
    }
};
var videoSelect, lastImageSrc, con, beepSound, w, h, lastCode;
var display = Q(element),
    DecodeWorker = null,
    video = html('<video muted autoplay playsinline></video>'),
    sucessLocalDecode = false,
    localImage = false,
    flipMode = [1, 3, 6, 8],
    isStreaming = false,
    delayBool = false,
    initialized = false,
    localStream = null,
    options = {
        decodeQRCodeRate: 5,
        decodeBarCodeRate: 3,
        successTimeout: 500,
        codeRepetition: true,
        tryVertical: true,
        frameRate: 15,
        width: 320,
        height: 240,
        constraints: {
            video: {
                mandatory: {
                    maxWidth: 1280,
                    maxHeight: 720
                },
                optional: [{
                    sourceId: true
                }]
            },
            audio: false,
        },
        flipVertical: false,
        flipHorizontal: false,
        zoom: 0,
        beep: 'audio/beep.mp3',
        decoderWorker: 'js/DecoderWorker.js',
        brightness: 0,
        autoBrightnessValue: 0,
        grayScale: 0,
        contrast: 0,
        threshold: 0,
        sharpness: [],
        resultFunction: function(res) {
            console.log(res.format + ": " + res.code);
        },
        cameraSuccess: function(stream) {
            console.log('cameraSuccess');
        },
        canPlayFunction: function() {
            console.log('canPlayFunction');
        },
        getDevicesError: function(error) {
            console.log(error);
        },
        getUserMediaError: function(error) {
            console.log(error);
        },
        cameraError: function(error) {
            console.log(error);
        }
    };

这是我的 Play 的代码,它将触发显示摄像机的按钮

  function play() {
    if (!localImage) {
        if (!localStream) {
            init();
        }
        const p = video.play();
        if (p && (typeof Promise !== 'undefined') && (p instanceof Promise)) {
            p.catch(e => null);
        }
        delay();
    }
}

0 个答案:

没有答案