最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript實現(xiàn)拍照功能詳細示例代碼

 更新時間:2023年07月27日 11:12:03   作者:街尾雜貨店&  
這篇文章主要給大家介紹了關(guān)于javascript實現(xiàn)拍照功能的相關(guān)資料, 最近做項目,遇到一個正常但又少見的需求之拍照,文中給出了詳細的代碼示例,需要的朋友可以參考下

介紹

HTML5 的 getUserMedia API 為用戶提供訪問硬件設(shè)備媒體(攝像頭、視頻、音頻、地理位置等)的接口,基于該接口,開發(fā)者可以在不依賴任何瀏覽器插件的條件下訪問硬件媒體設(shè)備。

另外,主流瀏覽器 Firefox、Chrome、Safari、Opera 等等已經(jīng)全面支持。

一、獲取視頻流,并用 video 標簽播放

 <video id="video" autoplay></video>
const videoConstraints = { width: 1366, height: 768 };
const videoNode = document.querySelector('#video');
let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });
videoNode.srcObject = stream;
videoNode.play();

二、多個攝像頭設(shè)備切換

// enumerateDevices獲取所有媒體設(shè)備
const mediaDevices = await navigator.mediaDevices.enumerateDevices();

// 通過設(shè)備實例king屬性videoinput,過濾獲取攝像頭設(shè)備
const videoDevices = mediaDevices.filter(item => item.kind === 'videoinput') || [];

// 獲取前置攝像頭
const videoDeviceId = videoDevices[0].deviceId;
const videoConstraints = { deviceId: { exact: videoDeviceId }, width: 1366, height: 768 };
let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });

// 獲取后置攝像頭
const videoDeviceId = videoDevices[1].deviceId;
const videoConstraints = { deviceId: { exact: videoDeviceId }, width: 1366, height: 768 };
let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });

// 依次類推...

三、拍照保存圖片

// 通過canvas捕捉video流,生成base64格式圖片
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
canvas.width = 1366;
canvas.height = 768;
context.drawImage(videoNode, 0, 0, canvas.width, canvas.height);
download(canvas.toDataURL('image/jpeg'));

// 下載圖片
function download (src) {
   if (!src) return;
   const a = document.createElement('a');
   a.setAttribute('download', new Date());
   a.href = src;
   a.click();
}

關(guān)閉攝像頭設(shè)備

let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });
// 3s后關(guān)閉攝像頭
setTimeout(function () {
    stream.getTracks().forEach(track => track.stop());
    stream = null;
}, 3000);

總結(jié) 

到此這篇關(guān)于javascript實現(xiàn)拍照功能的文章就介紹到這了,更多相關(guān)javascript拍照功能實現(xiàn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • yepnope.js使用詳解及示例分享

    yepnope.js使用詳解及示例分享

    yepnope.js 是一個超高速的按條件異步加載資源的加載器,允許你只加載使用到的資源(css及js)。
    2014-06-06
  • 使用JavaScript和C#中獲得referer

    使用JavaScript和C#中獲得referer

    經(jīng)常使用其他腳本語言(ASP ASP.NET PHP等)獲取頁面的瀏覽來源,今天我們來研究下使用Javascript以及C#獲取頁面的referer。
    2014-11-11
  • JavaScript如何輸出楊輝三角

    JavaScript如何輸出楊輝三角

    這篇文章主要介紹了JavaScript如何輸出楊輝三角問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • js圖片無縫滾動插件使用詳解

    js圖片無縫滾動插件使用詳解

    這篇文章主要為大家詳細介紹了js圖片無縫滾動插件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Javascript核心讀書有感之語句

    Javascript核心讀書有感之語句

    這篇文章主要介紹了Javascript核心讀書有感之語句,需要的朋友可以參考下
    2015-02-02
  • 超詳細的JS彈出窗口代碼大全

    超詳細的JS彈出窗口代碼大全

    這篇文章主要為大家分享超詳細的JS彈出窗口代碼大全,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • js實現(xiàn)公告自動滾動

    js實現(xiàn)公告自動滾動

    這篇文章主要為大家詳細介紹了js實現(xiàn)公告自動滾動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • JavaScript實現(xiàn)的瀏覽器下載文件的方法

    JavaScript實現(xiàn)的瀏覽器下載文件的方法

    本文通過一段簡單的代碼給大家介紹了js實現(xiàn)瀏覽器下載文件的方法,需要的的朋友參考下吧
    2017-08-08
  • JavaScript通過filereader接口讀取文件

    JavaScript通過filereader接口讀取文件

    這篇文章主要為大家詳細介紹了通過filereader接口讀取文件,使用readAsDataURL方法預(yù)覽圖片的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評論

尤溪县| 莫力| 潜江市| 花莲县| 古田县| 拉萨市| 金昌市| 甘南县| 灵丘县| 哈尔滨市| 开江县| 荆州市| 桃园县| 项城市| 大余县| 建水县| 若尔盖县| 宁强县| 大田县| 于都县| 台江县| 英德市| 贺州市| 思茅市| 新竹县| 宜城市| 常德市| 获嘉县| 宜春市| 黎平县| 陈巴尔虎旗| 新建县| 曲麻莱县| 南郑县| 东海县| 佛学| 当阳市| 柞水县| 广灵县| 柳河县| 青阳县|