微信小程序调用摄像头隐藏式拍照功能

  

微信小程序最近非常火热,小编最近做了一个新项目,使用小程序开发考试系统,在使用应用参加考试的时候调用摄像头抓拍用户是否作弊,在开发过程中遇到点问题,下面小编把问题描述和解决方法分享给大家,具体内容如下:

  

  

今天小编遇到了这么个问题,就是在用户使用应用参加考试的时候调用摄像头抓拍用户是否作弊,其实这也没什么,关键在于不能打扰用户考试,不能被用户发现什么时候抓拍的,也不能给用户查看图片,只有考完是后才能查看。这系统相当于考驾照时的上机答题部分。开始经理的要求是调用小程序外部的手机拍摄功能,这要可把我吓的够呛。

  

  

遇到这种问题肯定要先找下官网的帮助文档,于是找到了调用摄像头的这么一个模块

  

相机组件控制(wx.createCameraContext)

  

说明:   

创建并返回相机上下文cameraContext对象,cameraContext与页面的摄像头组件绑定,一个页面只能有一个相机,通过它可以操作对应的& lt;相机/比;组件。在自定义组件下,第一个参数传入组件实例,以操作组件内& lt;相机/比;组件

  

cameraContext对象的方法列表:

  

           takePhoto   对象   拍的照,可指定质量,成功则返回图片         startRecord   对象   开始录像         stopRecord   对象   结束录像,成功则返回封面与视频            

  

takePhoto的对象参数列表:

  

           质量   字符串   否   成像质量,值为高,正常,低,默认正常         成功   函数   否   接口调用成功的回调函数,res={tempImagePath}         失败   函数   否   接口调用失败的回调函数         完整的   函数   否   接口调用结束的回调函数(调用成功,失败都会执行)            

  

这不是有个拍照功能的模块吗,于是去找了一下官网所给的代码研究了一下:

  

官网代码:

  

<强> wxml代码:

        & lt;视图类=皃age-body”比;   & lt;视图类=皃age-body-wrapper”比;   & lt;相机device-position=胺祷亍眆lash=肮乇铡眀inderror=按砦蟆弊4? lt;/camera>   & lt;视图类=癰tn-area”比;   & lt;按钮类型=爸鳌眀indtap=皌akePhoto”在拍照& lt;/button>   & lt;/view>   & lt;视图类=癰tn-area”比;   & lt;按钮类型=爸鳌眀indtap=皊tartRecord”在开始录像& lt;/button>   & lt;/view>   & lt;视图类=癰tn-area”比;   & lt;按钮类型=爸鳌眀indtap=皊topRecord祝辞结束录像& lt;/button>   & lt;/view>   & lt;视图类=" preview-tips "祝辞预览& lt;/view>   & lt;图像wx:如果=" {{src}}”模式=皐idthFix src=" https://www.yisu.com/zixun/{{src}}”祝辞& lt;/image>   & lt;视频wx:如果=" {{videoSrc}}”类="视频" src=" https://www.yisu.com/zixun/{{videoSrc}}”祝辞& lt;/video>   & lt;/view>   & lt;/view>   
     

js代码:
  

        页面({   onLoad () {   这一点。ctx=wx.createCameraContext ()   },      takePhoto () {   this.ctx.takePhoto ({   质量:“高”,   成功:(res)=比;{   this.setData ({   src: res.tempImagePath   })   }   })   },      startRecord () {   this.ctx.startRecord ({   成功:(res)=比;{   console.log (“startRecord”)   }   })   },      stopRecord () {   this.ctx.stopRecord ({   成功:(res)=比;{   this.setData ({   src: res.tempThumbPath,   videoSrc: res.tempVideoPath   })   }   })   },   错误(e) {   console.log (e.detail)   }   })      

wxcss代码:
  

        .preview-tips {   保证金:20 rpx 0;   }   .video {   保证金:50 px汽车;   宽度:100%;   身高:300 px;   }      

这代码修改还是可以的只是不是我想要的那种,我要的是隐藏没有摄像头的,和自动抓拍功能的,
  

  

官网代码分析:

  

<代码> & lt;相机device-position=胺祷亍眆lash=肮乇铡眀inderror=按砦蟆弊4? lt;/camera>
  

  

这是摄像头模块,这模块只要不是隐藏,宽高不为0,都可以正常使用拍照功能
  

  

<代码>。ctx=wx.createCameraContext()

微信小程序调用摄像头隐藏式拍照功能