亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

HTML5拍照和攝像機功能實戰(zhàn)詳解

2024-08-26 00:21:18
字體:
供稿:網(wǎng)友

開篇

最近在做一個chrome app的云相機應用,應用包括拍照、攝像、保存照片視頻、上傳文件等等核心功能,其中涉及到很多HTML5對媒體流相關(guān)的API。寫這篇文章的目的,其一是總結(jié)梳理知識點,最重要是希望對有相關(guān)需求的讀者提供一些指導。

注:本篇文章以實戰(zhàn)為準,理論知識不做過多介紹。

拍照

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

瀏覽器兼容性如下:

 

 
HTML5,拍照,攝像機

 

從上圖可以看到,主流瀏覽器Firefox、Chrome、Safari、Opera等等已經(jīng)全面支持。

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

2、多個攝像頭設備,如何切換?

// 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 });        // 依次類推...

3、拍照保存圖片

// 通過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();    }

4、關(guān)閉攝像頭設備

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

到此完成簡單的相機拍照功能

攝像

攝像基本流程,是錄制一段視頻流并保存為音視頻文件。HTML5 MediaRecorder對象提供了多媒體錄音和錄視頻功能。

瀏覽器兼容性如下:

 

 
HTML5,拍照,攝像機

 

從上圖所示,瀏覽器對MediaRecorder兼容性遠不如getUserMedia,目前只有Chrome、Firefox對MediaRecorder支持較好。

==注意:攝像預覽播放器video標簽要設置靜音muted(消除回聲導致的刺耳噪音)==

const videoConstraints = { width: 1366, height: 768 };    let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });    let mediaRecorder = new MediaRecorder(stream);    let mediaRecorderChunks = []; // 記錄數(shù)據(jù)流       mediaRecorder.ondataavailable = (e) => {        mediaRecorderChunks.push(e.data);    };        mediaRecorder.onstop = (e) => {        // 通過Blob對象,創(chuàng)建文件二進制數(shù)據(jù)實例。        let recorderFile = new Blob(mediaRecorderChunks, { 'type' : mediaRecorder.mimeType });        mediaRecorderChunks = [];        const file = new File([this.recorderFile], (new Date).toISOString().replace(/:|/./g, '-') + '.mp4', {            type: 'video/mp4'        });        download(URL.createObjectURL(file));        // 下載視頻        function download (src) {            if (!src) return;            const a = document.createElement('a');            a.setAttribute('download', new Date());            a.href = src;            a.click();        }    };        mediaRecorder.stop(); // 停止錄制,觸發(fā)onstop事件

總結(jié)

通過以上實戰(zhàn),相信讀者已經(jīng)掌握基礎(chǔ)相機功能,拍照、攝像、保存文件等。由于應用項目非個人項目,源碼不公開,有興趣的朋友,不妨動手一試。


注:相關(guān)教程知識閱讀請移步到HTML教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
在线视频亚洲专区| 伦理一区二区| 国产黄色av片| 欧美精品中文字幕亚洲专区| 欧美国产日韩一区二区在线观看| 91精品综合久久久久久五月天| 青青草视频社区| 欧美激情喷水| 超碰97免费观看| 亚洲一卡二卡三卡四卡五卡| 蜜臀一区二区三区精品免费视频| 日本成人精品视频| 欧美肥臀大乳一区二区免费视频| 理论片午午伦夜理片在线播放| 亚洲美女在线观看| 国产福利免费视频| 久久全球大尺度高清视频| 日本韩国精品一区二区| www视频在线看| www.色综合.com| 国产精品乱码视频| 国产av熟女一区二区三区| 高清精品久久| 51社区在线成人免费视频| 国产一区二区三区观看| 九九热精品视频在线观看| 日韩高清第一页| 国产裸体永久免费无遮挡| 女女色综合影院| 国产欧美小视频| 8mav在线| 在线一级视频| 亚洲综合欧美激情| 久久综合色视频| 最好看的日本字幕mv视频大全| 亚洲少妇一区二区三区| 一起草av在线| 久久影院中文字幕| 操操操综合网| 成人天堂噜噜噜| 日日夜夜狠狠操| 欧美伦理在线视频| 99热这里精品| 91视频免费观看网站| 久久天天做天天爱综合色| 7777精品久久久大香线蕉| 伊人色综合一区二区三区影院视频| 91精品人妻一区二区三区四区| 亚洲无人区码一码二码三码| 91亚洲国产成人精品性色| 欧美福利电影在线观看| 国产乱国产乱老熟300部视频| 免费看日产一区二区三区| 拔插拔插华人永久免费| 91人人爽人人爽人人精88v| 欧美视频国产视频| 999久久欧美人妻一区二区| 在线电影一区二区三区| 欧美激情亚洲视频| 日本天堂影院在线视频| 欧美色网站导航| 国产精品蜜月aⅴ在线| 天天操天天插天天射| 亚洲精品91美女久久久久久久| 日韩精选视频| 亚洲成人www| 欧美日韩在线看片| 99视频国产精品| 91在线视频观看| 国产探花在线免费观看| 亚洲国产成人在人网站天堂| 在线观看精品国产视频| 欧美寡妇偷汉性猛交| 午夜网站在线观看| 欧洲毛片在线视频免费观看| 极品一线天粉嫩虎白馒头| 一个人看的www视频免费在线观看| 欧美成人自拍视频| 青青草原播放器| 满满都是荷尔蒙韩剧在线观看| 一区二区三区不卡视频在线观看| 男女视频网站在线观看| 国产精品久久久久久久精| 久久久久久久久久久久久久久久久久久| av小次郎在线| 国产午夜精品一区二区三区视频| 欧美老少做受xxxx高潮| 亚洲中文字幕在线一区| 一区二区三区视频观看| 男女羞羞电影免费观看| wwwwxxxx国产| 老太做爰xxxx| 欧美特黄一区二区三区| 亚洲一区二区在线播放相泽| 狠狠激情五月综合婷婷俺| 午夜国产精品影院在线观看| 国产精品99999| 国产91久久婷婷一区二区| 欧美 日韩 人妻 高清 中文| 天堂在线中文字幕| 国产一级爱c视频| 天天骑天天干| 欧美1级日本1级| 影音先锋国产精品| 亚洲人成在线观看网站高清| 成人午夜网址| 色婷婷综合中文久久一本| 成人一区二区三区仙踪林| 91麻豆免费在线观看| 北条麻妃av高潮尖叫在线观看| 亚洲欧美日韩直播| 亚洲成人生活片| 校园春色 亚洲| 六月丁香婷婷综合| 国产精品久久免费观看| 欧美日本精品| wwwxx日本| 国产一级大片在线观看| 欧美性色视频在线| 国产高清自拍视频在线观看| 超污黄色软件| 涩涩视频在线免费看| 人妻精品无码一区二区三区| 国产欧美精品一区二区三区四区| 欧美性生活大片视频| 久久久影视传媒| 在线观看日韩国产| 日韩欧美一区在线观看| 日韩69视频在线观看| 国产精品91视频| 亚洲成a人片在线观看中文| 图片区亚洲欧美小说区| 日韩av三级在线| 亚洲精品久久久蜜桃| 美女黄色片视频| 精品国产成人av| 亚洲r级在线视频| 国产精品沙发午睡系列| 亚洲精品视频在线观看免费| 国产精品欧美久久久久一区二区| 国产视频久久久久| 美女视频一区免费观看| 欧美性xxxxxx少妇| 在线观看免费黄视频| 亚洲精品动漫| 国产不卡视频一区二区三区| 秋霞av鲁丝片一区二区| 国外成人在线视频| 一级黄色在线观看| 久久久久亚洲蜜桃| av毛片在线免费观看| 欧美在线观看视频一区二区| 日韩电影在线观看一区二区| 精品国产一区二区三区2021| 日韩中文字幕在线看| 日韩国产欧美在线观看| 国内精品福利| 欧美老女人xx| 亚洲免费中文| 亚洲乱码国产乱码精品天美传媒| 91精品国产综合久久福利软件| 国产又粗又猛又爽又黄的视频一| 午夜精品福利一区二区蜜股av| 国产1区2区| 欧美中文字幕在线观看| 中文字幕第一区综合| 亚洲综合色婷婷在线观看| 伊人成人免费视频| 国产亚洲成人精品| 国产欧美视频一区二区三区| www欧美xxxx| 2022亚洲天堂| 一级毛片视频| 国产人妻大战黑人20p| 毛茸茸多毛bbb毛多视频| 国产日韩欧美日韩大片| 免费看美剧网站| 国产亚洲一区精品| 国产裸体写真av一区二区| 国产日韩在线视频| 欧美激情中文字幕乱码免费| 苍井空浴缸大战猛男120分钟| 视频一区视频二区视频三区视频四区国产| 在线视频亚洲一区| 国产一区二区三区高清在线观看| 亚洲十八**毛片| 国产精品三区四区| 91精品婷婷国产综合久久蝌蚪| 最新视频 - x88av| 日本国产在线观看| 欧美色图另类图片| 久久婷婷国产| 亚洲一区二区三区蜜桃| 熟妇人妻va精品中文字幕| 91国偷自产一区二区开放时间| 亚洲91网站| 久久久久久久久一区| 欧美日韩在线视频一区二区三区| 2018天天弄| 91在线观看一区二区| 色av综合在线| 亚洲精品免费电影| 奇米色一区二区| 桥本有菜av在线| 久久综合成人网| 乱中年女人伦av一区二区| 无码aⅴ精品一区二区三区| 91最新地址在线播放| 久草福利资源在线观看| 日韩欧美1区| 亚洲一区二区三区四区中文字幕| 99视频免费观看蜜桃视频| 99精品一级欧美片免费播放| 成人欧美精品一区二区| 日本欧美一区二区三区乱码| 亚洲国产日日夜夜| 在线尤物九色自拍| 国产又粗又猛又爽又| 色噜噜狠狠狠综合曰曰曰| 欧美视频在线免费| 在线观看国产v片| 91福利入口| 午夜一区二区三区不卡视频| 久久久久久毛片免费看| 国产污污视频在线观看| 欧美精品乱码久久久久久按摩| 日本一区精品久久久久影院| 久久久久久久久综合影视网| 国产无遮挡猛进猛出免费软件| 亚洲精品视频久久久| 中文字幕在线官网| 成人综合婷婷国产精品久久| 福利视频导航网| 免费看裸体网站| 亚洲午夜精品一区二区| 欧美一区二区视频在线观看| 2019精品视频| 在线观看亚洲色图| 久久久精品在线视频| 中文字幕在线播放日韩| 国产成人福利在线| 蜜臀一区二区三区| 不卡一卡二卡三乱码免费网站| 一区二区三区国产豹纹内裤在线| 日韩人妻一区二区三区蜜桃视频| 欧美1819sex性处18免费| jyzzz在线观看视频| 国产欧美一区二区三区视频在线观看| 三年片免费观看大全| 亚洲人成伊人成综合图片| 另类av一区二区| 欧美日韩视频免费观看| 最后生还者第二季在线观看| 秋霞成人午夜鲁丝一区二区三区| www.老鸭窝.com| 中文字幕av一区 二区| 国产三区视频在线观看| 岛国中文字幕| 亚洲v在线观看| 欧美成人福利在线观看| 91精品国产高清久久久久久久久| 精品视频久久久| 国产精品爽黄69天堂a| 九九热在线视频观看这里只有精品| 精品3atv在线视频| 拔插拔插海外华人免费| 亚洲91网站| 视频一区在线免费观看| 国产精品视频一二三四区| 美女三级黄色片| 久久精品电影一区二区| 丝袜中文在线| 狠狠搞狠狠干| 欧美精品在线视频观看| 91产国在线观看动作片喷水| 欧美精品三级日韩久久| 国产一区二区三区四区在线| 亚洲午夜影视影院在线观看| 国产在线观看黄| 黄色网页在线播放| 亚洲欧洲日本在线| 日韩黄色三级在线观看| 午夜男人视频在线观看| 精品国内产的精品视频在线观看| 日韩高清一区二区| 国产suv精品一区二区69| 伊人久久大香线蕉综合影院首页| 精品人妻一区二区三区浪潮在线| 欧美在线中文字幕高清的| 欧美精品成人一区二区在线观看| 日韩高清一二三区| 一本色道**综合亚洲精品蜜桃冫| 中国在线观看免费国语版电影| 中文字幕jux大岛优香| 国产精品一区免费观看| 成人在线免费电影网站| 欧美日韩中文不卡| 欧美福利在线视频| 狠狠色一日本高清视频| 午夜老司机福利| 色综合久久综合网| 国产精品色一区二区三区| 国产精品毛片a∨一区二区三区| 在线观看中文av| 中文字幕日韩欧美在线视频| 欧美激情第一页在线观看| 欧美日韩精品免费观看视频| 欧美丰满老妇熟乱xxxxyyy| 免费看黄色91| 黄色网页免费在线观看| 国产91高潮流白浆在线麻豆| 加勒比久久综合| 五月天久久比比资源色| 神马午夜伦理不卡| 国内精彩免费自拍视频在线观看网址| 国产精品麻豆一区二区三区| 91精品国产综合久久久久久丝袜| 天天色综合天天色| 韩国无码一区二区三区精品| 久久精品国产精品亚洲精品| 日韩三级影视基地| 国产精品欧美韩国日本久久| 亚洲成人在线视频播放| 色狠狠久久av综合| 美女又爽又黄免费动漫| 色八戒一区二区三区| 四虎影院一区二区| 中文在线观看免费视频|