var mediaStream;
var recorderFile;
var bd_videoBase64 = '';//提交的视频base64参数
var bd_liveUrl='<%=liveUrl%>';//api地址
var bd_session_id = '<%=radio_SesId%>';//session id
var Action1 = '<%=Action1%>';//动作1
var Action2 = '<%=Action2%>';//动作2
var ActnNum = 4;//倒计时
var stopRecordCallback;
var openBtn  = $("#openCamera");//打开摄像头
var startBtn = $("#start-recording");//开始录制
var saveBtn  = $("#save-recording");//保存saveBtn.prop("disabled",true);
startBtn.click(function () {startBtn.removeClass("weui-btn weui-btn_mini weui-btn_primary").addClass("weui-btn weui-btn_mini weui-btn_default");startBtn.prop("disabled",true);startRecord();
});
saveBtn.click(function () {saveBtn.removeClass("weui-btn weui-btn_mini weui-btn_primary").addClass("weui-btn weui-btn_mini weui-btn_default");saveBtn.prop("disabled",true);sendBdAPi();
});var mediaRecorder;
var videosContainer = $('#videos-container'); //录制容器
//打开摄像头
function openCamera() {videosContainer.empty();var video = document.createElement('video');var videoWidth = 320;var videoHeight = 240;video.controls = false;video.muted = true;video.width = videoWidth;video.height = videoHeight; video.style.border = "1px solid gray";MediaUtils.getUserMedia(true, true, function (err, stream) {if (err) { alert0("摄像头调用失败,请查看摄像头连接是否正常~");} else {// 通过 MediaRecorder 记录获取到的媒体流mediaRecorder = new MediaRecorder(stream);mediaStream = stream;var chunks = [], startTime = 0;video.srcObject = stream;video.play();videosContainer.append(video);mediaRecorder.ondataavailable = function (e) {mediaRecorder.blobs.push(e.data);chunks.push(e.data);};mediaRecorder.blobs = [];mediaRecorder.onstop = function (e) {recorderFile = new Blob(chunks, { 'type': mediaRecorder.mimeType });chunks = [];if (null != stopRecordCallback) {stopRecordCallback();}};}});
}
// 停止录制
function stopRecord(callback) {stopRecordCallback = callback;mediaRecorder.stop();// 终止录制器MediaUtils.closeStream(mediaStream);// 关闭媒体流
}
var MediaUtils = {/*** 获取用户媒体设备(处理兼容的问题)* @param videoEnable {boolean} - 是否启用摄像头* @param audioEnable {boolean} - 是否启用麦克风* @param callback {Function} - 处理回调*/getUserMedia: function (videoEnable, audioEnable, callback) {navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia|| navigator.msGetUserMedia || window.getUserMedia;var constraints = {video: videoEnable, audio: audioEnable};if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {callback(false, stream);})['catch'](function(err) { callback(err);});} else if (navigator.getUserMedia) {navigator.getUserMedia(constraints, function (stream) {callback(false, stream);}, function (err) { callback(err);});} else { callback(new Error('Not support userMedia'));}},/*** 关闭媒体流* @param stream {MediaStream} - 需要关闭的流*/closeStream: function (stream) {if (typeof stream.stop === 'function') { stream.stop(); }else {let trackList = [stream.getAudioTracks(), stream.getVideoTracks()];for (let i = 0; i < trackList.length; i++) {let tracks = trackList[i];if (tracks && tracks.length > 0) {for (let j = 0; j < tracks.length; j++) {let track = tracks[j];if (typeof track.stop === 'function') {track.stop();}}}}}}}; //开始录制    mediaRecorder.pause();function startRecord() {mediaRecorder.start();if(Action2==''){setTimeStop1();}else{setTimeout(function(){               mediaRecorder.pause();$('#lab_Code').text(Action2+": ");Subc();             },3000);}}function Subc() {ActnNum--;$('#sec_alert').text(ActnNum);if (ActnNum > 0) {setTimeout(Subc, 1000);}else{$('#sec_alert').text('开始');mediaRecorder.resume();setTimeStop1(); }}function setTimeStop1(){setTimeout(function(){$('#sec_alert').text('结束');stopRecord(function() {saveBtn.prop("disabled",false);saveBtn.removeClass("weui-btn weui-btn_mini weui-btn_default").addClass("weui-btn weui-btn_mini weui-btn_primary");saver();});},3000);}//保存function saver(){videoBase64 = ''; var file = new File([recorderFile], 'Cau-' + (new Date).toISOString().replace(/:|\./g, '-') + '.mp4',{type:'video/mp4;codecs=h264;acodec=aac'});var fileSize1 = file.size/1024/1024;if(fileSize1 < 2.1){let reader = new FileReader();reader.readAsDataURL(file);reader.onload= function(e7) {videoBase64 = e7.target.result;if (videoBase64) {videoBase64 = videoBase64.replace("data:video/mp4;codecs=h264;acodec=aac;base64,","");} else { alter0("视频文件录制异常");}};}else { alter0("视频大小为:"+fileSize1+"兆,视频过大请重新采集!");videoBase64 = "-1";}//saveAs(file);
}
function sendBdAPi(){if(videoBase64=="-1"){ alert0('视频大小超过接口调用范围~');return;}if(videoBase64!='' && videoBase64!=null){           jQuery.support.cors = true $.ajax({type: 'POST',url: bd_liveUrl,data: {"type_identify":"action","session_id":bd_session_id,"video_base64":videoBase64},dataType: "json",contentType: 'application/x-www-form-urlencoded', async:true, //crossDomain: true,beforeSend:function(){videosContainer.empty();var $img1 = $("<img src='../images/load6.gif' style='width:150px;height:150px;' />");$img1.appendTo(videosContainer);},success: function (data) {console.log(data);if (data.err_msg=='SUCCESS'){setTimeout(function(){videosContainer.empty();var $img = $("<img src=''  style='width:320px;height:240px;'   />");$img.appendTo(videosContainer);$img.prop('src','data:image/jpeg;base64,'+data.result.best_image.pic);}, 1);    if(data.result.action_verify=="pass")   {            var PaperId = '<%=PaperId%>';var ArchieveID = '<%=ArchieveID%>';var isTru9 =  Bd_face(PaperId, ArchieveID, data.result.best_image.pic,1);if(isTru9){location.href = "P.aspx";}else{alert("人脸识别失败,请重新检测~");location.reload();}}else{alert("活体检测失败,请重新检测~");location.reload();}}else{alert0("失败:"+data.err_msg+'---'+ data.result.code );}},error: function (err) { videosContainer.empty();alert0(err);alert0("图像采集方法调用失败");}});}else{alert0('参数错误');}
}
function Bd_face(PpId, ArchId, base64Str1, Cate1){var isTure = false;$.ajax({type: 'POST',url: 'BdApi.ashx?cate=Canvas',data: {"PaperId":PpId,"ArchieveID":ArchId,"base64":base64Str1,"Cate":Cate1 },dataType: "json",async:false, success: function (data) {alert0(data.Msg);if (data.Status){isTure =true;}},error: function (err) { alert0("图像采集方法调用失败");}});return isTure;
}
function send(){var file = new File([recorderFile], 'Cau-' + (new Date).toISOString().replace(/:|\./g, '-') + '.mp4', {type: 'video/mp4'});var data = new FormData();data.append("username", "test");data.append("userfile", file);var req = new XMLHttpRequest();req.open("POST", "com.spinsoft.bip.frame.utils.image.saveMp4.biz.ext");req.send(data);
}openCamera();

调用百度h5活体检测相关推荐

  1. 调用百度h5活体检测,参数video_base64,视频解析错误的问题

    调用百度人脸识别h5活体检测接口时,提示视频解析错误,保存视频后发现, 默认的视频编码是vp8, 而接口需要的h264 , 如果在后台用ffmpeg实现转码的 话,复杂度比较高, 找了下资料发现,在前 ...

  2. 百度H5活体检测-语音校验码

    关于百度H5活体检测-语音校验码,官网有完整的demo连接 但是官网上的获取验证码的接口是https://ai.baidu.com/aidemo.之前是可以的.但是最近突然就访问不了了.具体报错信息为 ...

  3. 百度人脸活体检测系统通过信通院“护脸计划”首批优秀级安全防护能力评估

    11月2日,百度人脸活体检测系统(V2.0)以全项通过的优异成绩,顺利通过信通院"可信人脸应用守护计划"(以下简称"护脸计划")测试,获评为优秀级(四级)安全防 ...

  4. React native 接入百度AI活体检测、人脸识别 iOS版本

    前期准备工作参考:React native 接入百度AI活体检测.人脸识别 Android版本 iOS配置 1.将FaceSDK里面的文件导入到iOS项目 添加完之后是这样的 2.选择链接C++标准库 ...

  5. 调用百度ai人脸检测接口

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.人脸检测是什么? 二.使用步骤 1.引入库 2.分包操作 3.添加自定义MyApplication 4.Netwo ...

  6. THINKPHP6.02调用百度H5实名认证接口

    THINKPHP6.02调用百度H5实名认证接口 1.首先你要有百度账号并通过实名认证 2.在人脸识别处新建应用,如下三张图所示: 你在你的账号能看到上面的三张图,证明你的前提工作已经准备好.下面是代 ...

  7. 调用百度人体属性检测api进行人员预标注

    此代码目的为调用百度的人体属性检测api进行数据集预标注.并将调用所获得的相关信息保存到xml文件.具体步骤如下: 1.下载并安装相关人体分析python sdk. 网址为:https://cloud ...

  8. 微信小程序开发之颜值测试,调用百度AI人脸检测接口

    ​页面效果 插播一下,颜值71,还可以那么狂,哼........ 项目介绍 页面实现上传一张带有人像的图片,点击测试颜值之后返回照片中人像的年龄和颜值,此项目为颜值测试初级,access_token值 ...

  9. python百度云活体检测_opencv-活体检测

    ▲项目目的:识别真实人脸和照片,实现"识真"而不止"识脸". ▲使用工具:opencv,python,matlab 首先 1. 构建图像数据集 2. 实现一个能 ...

最新文章

  1. 金蝶API apiEnv.apiSession.Token = GetToken()报错
  2. 3164 质因数分解
  3. windows环境下tensorflow安装过程详解(亲测安装成功后测试那块)
  4. monkey 运行时间怎么计算_基于STM32F103C8T6工控板利用定时器计算某段代码的运行时间...
  5. conda失败说没有写权限_爱情中,为什么男生表白失败,女生还说可以继续做朋友,想过没有...
  6. hdu 1421 搬寝室 动态规划
  7. linux shell tr,shell脚本 之 tee tr
  8. O‘REILLY: Reverse Every Ascending —— 将列表中的升序改为降序
  9. java跳转页面_几种方式实现Javaweb页面跳转
  10. 华为笔记本怎么激活windows_HUAWEI MateBook笔记本怎么激活Office?
  11. 博取仪器3D产品配置
  12. Frida调用静态函数和非静态函数
  13. matlab基础总结与图像处理应用(上)
  14. 使用karma+mocha+chai为vue组件库做单元测试
  15. 数据库选型-国产数据库如何满足你的需求
  16. 宜信敏捷数据中台建设实践
  17. 关于机器人操作系统(ROS)学习前须知二三
  18. linux怎么撤销关机命令,Linux怎么关机
  19. matlab帮助命令有,在MATLAB中,提供帮助的命令是:( )
  20. SAP MDG —— 一些正在大规模使用MDG系统的国外公司清单(排名不分先后,持续更新中……)

热门文章

  1. php的知识体系结构图,高中英语全部知识体系结构图汇总
  2. 零基础转行大数据可行吗?大数据开发需要什么基础呢?
  3. 工信部装备司文件首提数字孪生关键技术
  4. UVa 1645 - Count
  5. MacBook Pro 入手一年了,到底香不香?
  6. Java和Java大数据有什么区别?
  7. VIO中的角速度和四元数
  8. mac m1 外接 4k 显示器 字体发虚 发灰怎么办
  9. RabbitMQ 延迟队列和消息可靠传递
  10. linux测试读写的工具,Linux 下的硬盘读写速度测试工具