- JS API 列表
- 基础
- 网络
- 媒体
- 地图
- 文件
- 开放接口
- 数据缓存
- 地理位置
- 设备
- 画布
- 界面
- 页面导航
- 侧边栏能力
- 行业开放
- AI/AR能力
- 第三方平台
- TTML
- 转发和挂载
- 其它
- 直播能力
CameraContext.onCameraFrame收藏我的收藏
收藏
我的收藏基础库 1.78.0 开始支持本方法,这是一个同步方法。
获取 Camera 实时帧数据,返回监听器 CameraFrameListener。
前提条件 | 无 |
业务背景 | 无 |
使用限制 | 无 |
注意事项 |
|
支持沙盒 | 否 |
相关教程 | 无 |
语法
CameraContext.onCameraFrame(callback)
参数说明
callback
类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|
function | 是 | 回调函数 | 1.78.0 |
callback 是一个回调函数,接收 object 类型的参数,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
width | number | 图像数据矩形的宽度(单位:像素) | 1.78.0 |
height | number | 图像数据矩形的高度 | 1.78.0 |
data | arrayBuffer | 图像像素点数据,一维数组,每四项表示一个像素点的 rgba | 1.78.0 |
timestamp | number | 当前相机画面对应的时间戳,单位是纳秒 | 1.78.0 |
返回值
类型 | 说明 | 最低支持版本 |
---|---|---|
object | 1.78.0 |
扫码体验
请使用字节宿主APP扫码
代码示例
<!-- index.ttml -->
<camera class="camera" frame-size="medium" device-position="back" binderror="onError"></camera>
<button type="primary" size="default" bindtap="startOnFrame">
开始接收帧数据
</button>
<view class="page-body">
<view>第 {{counter}} 帧</view>
</view>
// index.js
Page({
data: {
counter: 0,
},
onLoad: function (options) {
tt.getSetting({
success: (res) => {
let cameraAllowed = res.authSetting["scope.camera"];
if (!cameraAllowed) {
tt.showToast({
title: "请授权相机后重新进入"
});
}
},
fail: (err) => {
tt.showModal({
title: "获取授权失败",
content: JSON.stringify(err),
});
},
});
},
startOnFrame(e) {
const cameraCtx = tt.createCameraContext();
const listener = cameraCtx.onCameraFrame((frame) => {
this.setData({
counter: this.data.counter + 1,
});
});
listener.start({
success: (res) => {
tt.showToast({ title: "开始接收帧数据" });
},
fail: (err) => {
tt.showModal({
title: "接收失败",
content: JSON.stringify(err),
});
},
});
},
onError(err) {
tt.showModal({
title: "相机出错了",
content: JSON.stringify(err),
});
},
});
该文档是否有帮助?
点击纠错