fox浏览器(fox浏览器官网)

大家好,最近还有很多朋友对于fox浏览器不是很理解。然后还有一些网友想弄清楚fox浏览器官网,泰缘号网小编已经为你找到了相关问题的答案,接下来和我们一起看看吧,希望对大家有所帮助!

需求

混合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错误,原因是摄像头参数设置不合理,找不到指定设置。

注:如代码有错误请主动联系发布者。

本文所有内容来自互联网,如有侵权/不实内容请联系我们删除,联系邮箱postusb@foxmail.com

发布者:缘分,转转请注明出处:https://www.bjxdyg.com/life/94613.html

(0)
缘分缘分
上一篇 2023年 2月 21日
下一篇 2023年 2月 21日

相关推荐

  • 几级能效空调最省电(空调一级能效与五级能效的区别)

    【宅秘新闻】4月18日,小米智能生态官方宣布,米家空调巨省电2匹正式开售。和同匹数柜机相比,米家空调巨省电2匹更节约空间不占地;支持快速制冷制热、内外机自清洁,从内到外都是健康的舒适风;采用新一级能效,高效节能,噪音低,到手价2699元。 米家空调巨省电2匹开售 米家空调巨省电2匹采用轻巧机身设计,体积小巧精致,同时拥有2匹大能量,可以轻松覆盖20-30m2…

    2023年 5月 9日
    13700
  • 团队名称正能量(团队名称正能量 红色)

    大家好,最近还有很多朋友对于团队名称正能量不是很理解。然后还有一些网友想弄清楚团队名称正能量 红色,泰缘号网小编已经为你找到了相关问题的答案,接下来和我们一起看看吧,希望对大家有所帮助! 现代企业的设计基本是提倡履行以人力资源为中心, 冲破传统的劳动人事管理的约束,不再把人看做一种技术要素, 而是看成具有内在的建设性潜力因素, 看成决定企业生存与发展、始终充…

    趣味生活 2023年 2月 22日
    22500
  • 淘宝运费险怎么用(淘宝运费险怎么用,退货流程是什么)

    大家好,最近还有很多朋友对于淘宝运费险怎么用不是很理解。然后还有一些网友想弄清楚淘宝运费险怎么用,退货流程是什么,泰缘号网小编已经为你找到了相关问题的答案,接下来和我们一起看看吧,希望对大家有所帮助! “运费险”简直就是剁手党的福音,不喜欢/颜色不适合都能随便退。可以说,“运费险”的推出让网购成为一种零损耗消费方式。不过,近日消费者宋女士反应,她无论怎样都买…

    趣味生活 2023年 2月 10日
    17300
  • 刘强东怎么了出什么事了()

    大家好,近期很多朋友对于刘强东怎么了出什么事了产不是很理解。然后还有一些网友想弄清楚,泰缘号(www.bjxdyg.com)已经为你找到了相关问题的答案,接下来和我们一起看看吧,希望对大家有所帮助! 1950年1月的一天,重庆朝天门渡口下来两个农民打扮的年轻人,他们来到寸滩镇一处村口,早有一个中年男人在等着他们俩。 三人碰头后,那个中年男人就带着两个年轻人来…

    趣味生活 2022年 11月 19日
    27500
  • 翡翠石头哪里可以找到(翡翠矿石在哪里找到)

    翡翠原石,其颜色和清晰度是衡量其价值和观赏性的主要标准。相信翡翠爱好者都知道,翡翠原石是翡翠制品的原材料,也是珠宝批发商、零售商一直在寻找的物品,它们可以从中挑选出性价比高、透明度好的翡翠,制作出让人心动的各种翡翠珠宝。 然而,在购买翡翠原石时,我们需要注意以下几点。首先,购买者需要了解翡翠原石的基本知识。像颜色的鲜艳度、透明度、纹理和坚硬度等等,这些在购买…

    2023年 5月 11日
    15600

联系邮箱

postusb@foxmail.com

邮箱咨询: QQ交谈

邮箱:postusb@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息