智能小程序 Ray 开发——媒体组件 Camera、Image 和 IpcPlayer 实操讲解

Camera

基础库 2.2.0 开始支持, 低版本需做兼容处理。

系统相机。

相关 API:createCameraContext。这是基于异层渲染的原生组件, 请注意 原生组件使用限制

导入

import { Camera } from '@ray-js/ray';
import { createCameraContext } from '@ray-js/api';

属性说明

属性名类型默认值必填说明
modestringnormal应用模式,只在初始化时有效,不能动态变更
resolutionstringmedium分辨率,不支持动态修改;可选值有 low: 低,medium: 中,high: 高
devicePositionstringback摄像头朝向, 可选值有front: 前置, back: 后置
flashstringauto闪光灯, 可选值有auto: 自动, on: 打开, off: 关闭, torch: 常亮
borderWidthnumber0边框的宽度, 单位 px
borderStylestringsolid边框的样式, 可选值: solid 和 dashed
borderColorstring#ffffff边框的颜色, 必须为十六进制格式
borderRadiusnumber0边框的圆角, 单位 px
borderRadiusTopLeftnumber边框的左上角圆角大小, 单位 px
borderRadiusTopRightnumber边框的右上角圆角大小, 单位 px
borderRadiusBottomLeftnumber边框的左下角圆角大小, 单位 px
borderRadiusBottomRightnumber边框的右下角圆角大小, 单位 px
backgroundColorstring#ffffff背景颜色, 必须为十六进制格式
onBindstopeventhandle摄像头在非正常终止时触发,如退出后台等情况
onErroreventhandle用户不允许使用摄像头时触发
onInitdoneeventhandle相机初始化完成时触发,e.detail = {maxZoom}

Bug & Tip

  1. tip:同一页面只能插入一个 camera 组件。
  2. tip:Tuya MiniApp Tools 上不支持。
  3. tip:相关原理请参考 基于异层渲染的原生组件
  4. tip:请注意 原生组件使用限制

👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。 

Image

图片

导入

import { Image } from '@ray-js/ray';

属性说明

属性类型默认值说明支持平台
classNamestring样式名涂鸦、微信
srcstring图片地址涂鸦、微信
modestring'scaleToFill'图片裁剪、缩放的模式,RN 支持部分模式,具体见下表涂鸦、微信
onLoad(e: { width: number; height: number; origin }) => void涂鸦、微信
onError(e: { errMsg: string; origin }) => void涂鸦、微信

mode 合法值

说明支持平台
scaleToFill缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素涂鸦、微信
aspectFit缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。涂鸦、微信
aspectFill缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。涂鸦、微信
widthFix缩放模式,宽度不变,高度自动变化,保持原图宽高比不变涂鸦、微信
heightFix缩放模式,高度不变,宽度自动变化,保持原图宽高比不变涂鸦、微信
top裁剪模式,不缩放图片,只显示图片的顶部区域涂鸦、微信
bottom裁剪模式,不缩放图片,只显示图片的底部区域涂鸦、微信
center裁剪模式,不缩放图片,只显示图片的中间区域涂鸦、微信
left裁剪模式,不缩放图片,只显示图片的左边区域涂鸦、微信
right裁剪模式,不缩放图片,只显示图片的右边区域涂鸦、微信
top left裁剪模式,不缩放图片,只显示图片的左上边区域涂鸦、微信
top right裁剪模式,不缩放图片,只显示图片的右上边区域涂鸦、微信
bottom left裁剪模式,不缩放图片,只显示图片的左下边区域涂鸦、微信
bottom right裁剪模式,不缩放图片,只显示图片的右下边区域涂鸦、微信

👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。  

IpcPlayer

基础库 2.2.0 开始支持, 低版本需做兼容处理。

实时视频播放。

相关 API:createIpcPlayerContext。这是基于异层渲染的原生组件, 请注意 原生组件使用限制

导入

import { IpcPlayer } from '@ray-js/ray';
import { createIpcPlayerContext } from '@ray-js/api';

属性说明

属性名类型默认值必填说明
deviceIdstringdevice-id 组件的唯一标识符,必须设置该属性
autoplaybooleanfalse自动播放
mutedbooleanfalse是否静音;
claritystringnormal清晰度, 可选值有normal: 标清, hd: 高清
soundModestringspeaker声音输出方式, 可选值有speaker: 扬声器, ear: 听筒
orientationstringvertical画面方向, 可选值有 vertical: 竖直, horizontal: 水平
objectFitstringcontain填充模式, 可选值有 contain: 图像长边填满屏幕,短边区域会被填充⿊⾊, fillCrop: 图像铺满屏幕,超出显示区域的部分将被截掉

autoPauseIf

Navigate

booleantrue当跳转到本小程序的其他页面时,是否自动暂停本页面的实时音视频播放

autoPauseIf

OpenNative

booleantrue当跳转到 App 其它原生页面时,是否自动暂停本页面的实时音视频播放
rotateZnumber0摄像头旋转角度,有效值 0~360 的整数
scalablebooleantrue当前是否可缩放
scaleMultiplenumber0缩放比例,仅当 scalable 为 true 时生效,最大不超过 maxScaleMultiple (maxScaleMultiple 可以通过 bind:initdone 事件返回的参数进行获取)
ptzControllablebooleantrue设置是否开启视频区域云平台控制
borderWidthnumber/string0边框的宽度, 单位 px
borderStylestringsolid边框的样式, 可选值: solid 和 dashed
borderColorstring#ffffff边框的颜色, 必须为十六进制格式
borderRadiusnumber/string0边框的圆角, 单位 px
backgroundColorstring#ffffff背景颜色, 必须为十六进制格式
onConnectchangeeventhandle当连接状态发生变化时触发,detail = { state }, state: 0 表示连接成功
onPreviewchangeeventhandle当预览状态发生变化时触发,detail = { state }, state: 1 表示开始预览成功, state: 0 表示结束预览成功
onOnlinechangeeventhandle当 ipc 设备在线状态变化时触发,detail = { online }, online: true 表示在线, online: false 表示离线或断电
onInitdoneeventhandle初始化完成时触发
onZoomchangeeventhandle视频缩放比例及当前倍数变化,detail = { zoomLevel }, zoomLevel 为缩放比例
onVideotapeventhandle点击视频时触发
onErroreventhandle当状态异层时触发 error 事件,detail = { "errCode": 错误码 , "errMsg": 错误描述 }, 错误码见下表

错误码

说明
-1000其他未知异常
-1001connect 失败
-1002开启预览失败
-1003结束预览失败
-1004设置静音失败
-1005设置清晰度失败
-1006截图失败
-1007属性不合法
-1008设置参数不合法
-1009disconnect 失败
-1010网络状态不可用
-1011设备离线
-1012设备被移除
-1013startTalk fail
-1014StopTalk fail
-1015StartRecord fail
-1016StopRecord fail
-1017IsTalkBacking fail
-1018SetAvailableRockerDirections fail
-1019IsPTZControllable fail
-1020SetTrackingStatus fail
-1021GetVideoInfo fail

Bug & Tip

  1. tip:ipc-player 默认宽度 300px、高度 225px,可通过 tyss 设置宽高。
  2. tip:Tuya MiniApp Tools 上暂不支持。
  3. tip:相关原理请参考 基于异层渲染的原生组件
  4. tip:请注意 原生组件使用限制

 👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。 

  • 68
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoT砖家涂拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值