前言
小程序返回的实时帧数据帧率很高,需要减速处理。
处理思路:打开监听端口,监听到1帧数据,调用回调函数处理,然后关闭监听端口。
把上述过程封装到一个函数里,再用setInterval()函数按一定时间调用1次。
具体细节
代码总体框架
javascript
Page({
// 页面初始数据
data:{
},
// 生命周期函数--监听页面加载
onLoad(){
// 定时器,设定扫描帧率(这里设置1s调用1次)
setInterval(this.oneProcessFrame, 1000);
},
// 实时帧处理函数
oneProcessFrame(){
// 获取camera上下文对象
const context = wx.createCameraContext();
// 定义监听帧数据的回调函数
const CamFramCall = (frame)=>{}
// 配置实时帧对象
const listener = context.onCameraFrame(CamFramCall);
// 开启监听
listener.start()
}
})
一旦开启监听帧数据,程序就会循环进行,监听到1帧数据就调用回调函数。
在回调函数内关闭监听,即可实现只处理1帧数据