真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

通過(guò)HTML5的getUserMedia實(shí)現(xiàn)拍照功能

1. 通過(guò)getUserMedia調(diào)用設(shè)備的攝像頭(電腦、手機(jī)都可以,取決于瀏覽器對(duì)這個(gè)API的支持情況),并將資源放入video標(biāo)簽。
2. 將video內(nèi)的視頻資源通過(guò)canvas的drawImage API放入canvas里,這個(gè)canvas是不顯示的。
3. 將canvas的內(nèi)容轉(zhuǎn)換成base64編碼的webp格式的圖像(如果瀏覽器不支持這個(gè)格式,會(huì)fallback到png格式)放入img里,于是你就能看到你拍的照片了。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供紅花崗企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司H5開(kāi)發(fā)、小程序制作等業(yè)務(wù)。10年已為紅花崗眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

不廢話了,上代碼:

HTML




    html5 capture test
    


    
    
    
    snapshot


    

JS

var video = document.querySelector('video');
var canvas = document.querySelector('canvas');
var ctx = canvas.getContext('2d');
var localMediaStream = null;

var snapshot = function () {
    if (localMediaStream) {
        ctx.drawImage(video, 0, 0);
        document.querySelector('img').src = canvas.toDataURL('p_w_picpath/webp');
    }
};

var sizeCanvas = function () {
    setTimeout(function () {
        canvas.width = video.videoWidth;
        canvas.height = video.videoHeight;
        img.width = video.videoWidth;
        img.height = video.videoHeight;
    }, 100);
};

var btnCapture = document.getElementById('capture');
btnCapture.addEventListener('click', snapshot, false);

navigator.webkitGetUserMedia(
    {video: true},
    function (stream) {
        video.src = window.URL.createObjectURL(stream);
        localMediaStream = stream;
        sizeCanvas();
    },
    function () {
        alert('your browser does not support getUserMedia');
    }
);

幾個(gè)注意事項(xiàng):

  • 不同瀏覽器對(duì)getUserMedia的支持情況不同,需要加上前綴,比如webkitGetUserMedia、mozGetUserMedia、msGetUserMedia,如果你想屏蔽這一問(wèn)題的話,可以這樣做:

// cross platforms
var myGetUserMedia = navigator.getUserMedia || 
                 navigator.webkitGetUserMedia ||
                 navigator.mozGetUserMedia || 
                 navigator.msGetUserMedia;
  • Chrome對(duì)file:///做了很多的限制,跨域就不說(shuō)了,geolocation也不能在本地下使用,這個(gè)getUserMedia也是。

  • 這個(gè)sizeCanvas函數(shù)做的事情就是保證你拍到的照片的大小和攝像頭拍到的大小是一樣的,否則會(huì)出現(xiàn)拍到的照片只有攝像頭錄到的一部分畫(huà)面的情況。

http://blog.csdn.net/journey191/article/details/40744015


網(wǎng)頁(yè)名稱:通過(guò)HTML5的getUserMedia實(shí)現(xiàn)拍照功能
鏈接地址:http://weahome.cn/article/jjcdpe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部