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

首頁 > 編程 > HTML > 正文

Html5調用手機攝像頭并實現人臉識別的實現

2024-08-26 00:21:13
字體:
來源:轉載
供稿:網友

需求

混合App開發,原生殼子+webApp,在web部分調用原生攝像頭功能并且在網頁指定區域顯示攝像頭內容,同時可以手動拍照并進行人臉識別,將識別結果顯示在網頁上。

技術棧

vue、Html5、video標簽、Android、IOS、百度AI

分析

1、使用navigator.mediaDevices.getUserMedia調用系統原生攝像頭功能
2、video標簽顯示攝像頭內容
3、canvas標簽獲取圖片
4、將圖像上傳服務器,通過百度AI識別圖片
5、web顯示識別結果

核心代碼

1、調用系統原生攝像頭功能并使用video標簽顯示html:

      <video        id="webcam"        :style="videoStyle"        :width="videoWidth"        :height="videoHeight"        loop        preload      >      </video>

JavaScript:

 initVideo() {      let that = this;      this.video = document.getElementById("webcam");      setTimeout(() => {        if (          navigator.mediaDevices.getUserMedia ||          navigator.getUserMedia ||          navigator.webkitGetUserMedia ||          navigator.mozGetUserMedia        ) {          //調用用戶媒體設備, 訪問攝像頭          this.getUserMedia(            {              video: {                width: {                  ideal: that.videoWidth,                  max: that.videoWidth                },                height: {                  ideal: that.videoHeight,                  max: that.videoHeight                },                facingMode: "user",    //前置攝像頭                frameRate: {                  ideal: 30,                  min: 10                }              }            },            this.videoSuccess,            this.videoError          );        } else {          this.$toast.center("攝像頭打開失敗,請檢查權限設置!");        }      }, 300);    },     getUserMedia(constraints, success, error) {      if (navigator.mediaDevices.getUserMedia) {        //最新的標準API        navigator.mediaDevices          .getUserMedia(constraints)          .then(success)          .catch(error);      } else if (navigator.webkitGetUserMedia) {        //webkit核心瀏覽器        navigator.webkitGetUserMedia(constraints, success, error);      } else if (navigator.mozGetUserMedia) {        //firfox瀏覽器        navigator.mozGetUserMedia(constraints, success, error);      } else if (navigator.getUserMedia) {        //舊版API        navigator.getUserMedia(constraints, success, error);      }    },    videoSuccess(stream) {      this.mediaStreamTrack = stream;      this.video.srcObject = stream;      this.video.play();    },    videoError(error) {      console.error(error);      this.$toast.center("攝像頭打開失敗,請檢查權限設置!");    },

2、canvas獲取攝像頭圖片

JavaScript:

 this.canvas = document.createElement("canvas");  .... let context = this.canvas.getContext("2d"); context.drawImage(this.video, 0, 0, this.videoWidth, this.videoHeight); this.imgSrc = this.canvas.toDataURL("image/png");

3、調用百度AI識別圖片

JavaScript:

        let that = this;        let base64Data = this.canvas.toDataURL();        let blob = this.dataURItoBlob(base64Data);           //        var file = new FormData();        file.append("file", blob);        file.append("key", that.uuid);        util.ajax          .post("XXXXXXXXXX", file, {            headers: {              "Content-Type": "multipart/form-data"            }          })          .then(function(response) {            if ((response.status = 200)) {                .....識別成功,顯示結果            } else {                ......識別失敗            }          })          .catch(function(error) {            console.error(error);          });              //base64轉換為Blob    dataURItoBlob(base64Data) {      var byteString;      if (base64Data.split(",")[0].indexOf("base64") >= 0)        byteString = atob(base64Data.split(",")[1]);      else byteString = unescape(base64Data.split(",")[1]);      var mimeString = base64Data        .split(",")[0]        .split(":")[1]        .split(";")[0];      var ia = new Uint8Array(byteString.length);      for (var i = 0; i < byteString.length; i++) {        ia[i] = byteString.charCodeAt(i);      }      return new Blob([ia], { type: mimeString });    },

手機適配

1、由于Android6之后,Android的權限管理出現變化,Android原生的殼子,需要做如下處理:

myWebView.setWebChromeClient(new WebChromeClient() {         @TargetApi(Build.VERSION_CODES.LOLLIPOP)         @Override         public void onPermissionRequest(final PermissionRequest request) {                   request.grant(request.getResources());        }});

2、IOS系統,Safari11之后可用

3、OverconstrainedError錯誤,部分Android手機會報OverconstrainedError錯誤,原因是攝像頭參數設置不合理,找不到指定設置。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91香蕉嫩草神马影院在线观看| 久久99热精品| 亚洲91精品在线观看| 97香蕉久久超级碰碰高清版| www.亚洲一二| 日韩欧美在线视频日韩欧美在线视频| 九九久久久久99精品| 久久夜色精品国产亚洲aⅴ| 国产精品久久久久久久久久ktv| 最新国产成人av网站网址麻豆| 欧美精品生活片| 国产精品96久久久久久| 欧美激情aaaa| 国产精品久久久久福利| 一本色道久久综合狠狠躁篇怎么玩| 91精品视频免费看| 欧美理论电影在线观看| 日本人成精品视频在线| 久久视频在线免费观看| 国产一区二区三区三区在线观看| 国产精品第一第二| 668精品在线视频| 国内精品久久久久伊人av| 97碰碰碰免费色视频| 国产精品久久久久不卡| 亚洲第一页自拍| 国产丝袜视频一区| 久久夜精品va视频免费观看| 91在线精品视频| 成人精品久久一区二区三区| 久久欧美在线电影| 91老司机在线| 午夜精品福利电影| 韩剧1988在线观看免费完整版| 成人网欧美在线视频| 97在线精品国自产拍中文| 亚洲人成在线免费观看| 91精品国产99久久久久久| 国产午夜一区二区| 日韩欧中文字幕| 亚洲变态欧美另类捆绑| 国产精品久久久久秋霞鲁丝| 久久亚洲电影天堂| 日韩在线视频免费观看高清中文| 96国产粉嫩美女| 欧美激情日韩图片| 热re91久久精品国99热蜜臀| 国产精品老牛影院在线观看| 欧美丝袜一区二区三区| 91在线精品视频| 日韩欧美一区二区三区| 91在线免费看网站| 色偷偷噜噜噜亚洲男人的天堂| 久久天天躁狠狠躁老女人| 在线日韩日本国产亚洲| 精品国产一区二区三区在线观看| 国产精品久久久av| 亚洲视频欧洲视频| 国产一区二区三区高清在线观看| 欧美午夜精品久久久久久人妖| 国产精品自拍网| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲精品99久久久久中文字幕| 91深夜福利视频| 97涩涩爰在线观看亚洲| 国产免费一区二区三区在线能观看| 欧美国产日韩一区二区三区| 色视频www在线播放国产成人| 欧美在线视频观看免费网站| 亚洲理论片在线观看| 福利一区视频在线观看| 91福利视频网| 久久精品国产99国产精品澳门| 欧美日韩在线观看视频小说| 欧美在线视频a| 欧美一级免费看| 欧美激情精品久久久| 国产一区二区三区直播精品电影| 久久成年人视频| 欧美色道久久88综合亚洲精品| 成人午夜高潮视频| 性夜试看影院91社区| 亚洲精品永久免费精品| 国产精品99导航| 欧美一区深夜视频| 久久亚洲精品小早川怜子66| 亚洲成人中文字幕| 国产精品中文久久久久久久| 久久久免费观看视频| 久久久综合av| 亚洲直播在线一区| 中文字幕亚洲一区| 91精品国产成人www| 2019中文字幕在线| 欧美影院成年免费版| 亚洲成人在线网| 日av在线播放中文不卡| 伊人久久五月天| 亚洲精品欧美一区二区三区| 一区二区三区视频观看| 91精品国产99久久久久久| 亚洲欧美日韩一区在线| 久久91亚洲精品中文字幕| 国产精品久久久久久中文字| 最近的2019中文字幕免费一页| 日韩在线观看免费高清| 91精品视频专区| 国产精品电影观看| 欧美黑人一级爽快片淫片高清| 8x海外华人永久免费日韩内陆视频| 亚洲国产精品大全| 欧美国产日韩一区二区在线观看| 国产成人短视频| 亚洲人精品午夜在线观看| 97超级碰在线看视频免费在线看| 亚洲美女av在线| 久久亚洲国产成人| 国产极品精品在线观看| 日韩av在线一区二区| 国产aaa精品| 亚洲精品欧美一区二区三区| 国产精品电影网| 国产精品久久久久久久久久新婚| 亚洲欧美激情四射在线日| 亚洲欧美日韩国产成人| 国产精品一区二区电影| 欧洲成人在线观看| 国产精品亚洲片夜色在线| 欧美片一区二区三区| 一区二区三区四区视频| 亚洲一区av在线播放| 日本91av在线播放| 久久精品99久久久香蕉| 97香蕉久久夜色精品国产| 97在线精品国自产拍中文| 91免费在线视频网站| 66m—66摸成人免费视频| 国产美女久久精品| 欧美在线视频免费观看| 亚洲第一区第二区| 久久精品福利视频| 亚洲高清色综合| 国产在线观看精品| 久久99精品久久久久久琪琪| 中文字幕av一区二区| 欧美性生交xxxxxdddd| 国产精品入口免费视| 亚洲国产另类 国产精品国产免费| 亚洲精品国产综合久久| 成人免费看吃奶视频网站| 麻豆一区二区在线观看| 精品久久久中文| 国产999精品久久久影片官网| 精品久久中文字幕久久av| 亚洲国产精品专区久久| 黄色一区二区在线| 欧美精品一区二区免费| 91国内免费在线视频| 久久视频在线播放| 国内精品久久久久久久| 久久青草精品视频免费观看| 亚洲综合在线做性| 欧美性xxxxx极品娇小| 日韩欧美在线视频免费观看|