欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript實現拍照功能詳細示例代碼

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

介紹

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

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

一、獲取視頻流,并用 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();

二、多個攝像頭設備切換

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

// 通過設備實例king屬性videoinput,過濾獲取攝像頭設備
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();
}

關閉攝像頭設備

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

總結 

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

您可能感興趣的文章:

相關文章

  • js數組的操作詳解

    js數組的操作詳解

    用js有很久了,但都沒有深究過js的數組形式。偶爾用用也就是簡單的string.split(char)。對于字符的處理很多情況下需要用到數組
    2013-03-03
  • 微信小程序云開發(fā)之模擬后臺增刪改查

    微信小程序云開發(fā)之模擬后臺增刪改查

    這篇文章主要為大家詳細介紹了微信小程序云開發(fā)之模擬后臺增刪改查,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • ES6擴展運算符的用途實例詳解

    ES6擴展運算符的用途實例詳解

    這篇文章主要介紹了ES6擴展運算符的用途 ,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-08-08
  • JavaScript設計模式之單例模式實例

    JavaScript設計模式之單例模式實例

    這篇文章主要介紹了JavaScript設計模式之單例模式實例,本文用一個實際例子講解JavaScript中的單例模式,需要的朋友可以參考下
    2014-09-09
  • 詳解Javascript實踐中的命令模式

    詳解Javascript實踐中的命令模式

    這篇文章主要介紹了Javascript實踐中的命令模式,對命令模式感興趣的同學,可以參考下
    2021-05-05
  • 微信小程序左右滾動公告欄效果代碼實例

    微信小程序左右滾動公告欄效果代碼實例

    這篇文章主要介紹了微信小程序左右滾動公告欄效果代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • js模擬實現Array的sort方法

    js模擬實現Array的sort方法

    JavaScript的Array對象有一個sort方法,用于實現對數組元素的排序,該方法默認按照數組項ASCII 字符順序升序排列。這篇文章重點給大家介紹js模擬實現Array的sort方法,一起看看吧
    2007-12-12
  • 判斷js數據類型的函數實例詳解

    判斷js數據類型的函數實例詳解

    這篇文章主要介紹了一個判斷js數據類型的函數,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • babel插件去除console示例詳解

    babel插件去除console示例詳解

    這篇文章主要為大家介紹了babel插件去除console示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • CSS javascript 結合實現懸浮固定菜單效果

    CSS javascript 結合實現懸浮固定菜單效果

    本篇文章給大家介紹基于CSS javascript 結合實現懸浮固定菜單效果,附有源碼下載,需要的朋友可以參考下
    2015-08-08

最新評論