Player 功能库

更新时间:2022-02-14 01:33:44下载pdf

本文介绍了 IPC 面板中与视频相关操作的封装接口。

使用示例

详情请参考 GitHub 模板

说明:此模板使用 React Hooks 开发,请使用 3.22 及以上 App 进行调试与预览。

import { TYIpcNative } from '@tuya/tuya-panel-ipc-sdk';

TYIpcNative.enterPlayBack();

TYIpcNative.enterAlbum();

方法概览

字段 说明 最低 App SDK 版本
startPlay 开始播放 3.17
pausePlay 暂停播放 3.17
iosSnapShootToPhoneAlbums 截图保存到手机相册(仅支持IOS) 3.17
isMuting 是否静音 3.17
isRecording 是否录制中 3.17
isTalkBacking 是否对讲 3.17
isHDOn 视频是否高清 3.17
enableHd 高标清视频流切换(只有高标清可用此方法) 3.17
changeClarityAndAudio 支持多类型视频流及音频模式 (需设备支持) 3.17
enableMute 声音模式切换 3.17
snapShoot 视频截屏 3.17
enableRecord 开始及结束视频录像 3.17
enableStartTalk 开始单向对讲或双向通话 3.17
enableStopTalk 结束单向对讲或双向通话 3.17
isSupportedCloudStorage 设备是否支持云存储 3.17
showToast 原生 App 弹出 toast 组件 3.17
enterPlayBack 普通原生回放页面 3.17
enterParamPlayBack 带参数的原生回放页面(含主题、固定时间) 3.20
enterAlbum 普通原生相册页面 3.17
enterParamAlbum 带参数的原生相册页面(含主题) 3.20
enterCloudBack 普通原生云存储页面 3.17
enterParamCloudBack 带参数的原生云存储页面(含主题、固定时间) 3.20
enterMessageAll 普通原生消息中心页面 3.17
enterParamMessageAll 带参数的原生消息中心页面(含主题) 3.20
enterMediaPlayerPreview 消息,图片音频跳转预览 3.17
enterCameraSetting 原生设置页面 3.17
setScreenOrientation 横竖屏切换 3.17
backPlayPreview 离开视频预览页面 3.17
enterRnPage 从视频预览界面跳转到其它 RN 一级界面,需调用此方法 3.17
backNavigatorLivePlay 从其它 RN 界面返回视频预览界面的返回按钮 3.17
backLivePlayWillUnmount 从其它 RN 界面返回视频预览界面的,RN 页面销毁时调用(必调) 否则会出现返回预览界面画面冻结 3.17
getWifiSignal 获取设备信号强度0-100 3.17
isMobileNetType 获取手机当前是移动流量还是其它方式(宽带,Wi-Fi)播放,主要用于提示用户流量消耗 3.17
gotoHybridContainer 跳转至固定 H5 移动 HTML 页面 3.17
backFromActivityBrowser 监听从 H5 页面返回 3.17
enterDeviceParamAlbum 行车记录仪跳转本地相册 3.22
openFloatWindow 视频浮窗 3.36

startPlay

最低 App 版本

3.17

描述

开始播放

请求参数

param:isWirless, privateMode, deviceOnline, clarityStatus, voiceStatus, hightScaleMode, channelNum

  • isWirless: boolean, // 是否为低功耗产品
  • privateMode: boolean, // 隐私模式是否开启
  • deviceOnline: boolean, // 设备是否在线
  • clarityStatus: string, // 加载视频流清晰度类型
  • hightScaleMode: boolean, // 是否按高适配
  • channelNum: number, // 支持通道数量,默认:-1

注:以上参数具体信息与播放器组件参数一致。

返回结果

null

使用示例

TYIpcNative.startPlay(false, false, true, 'HD', true, -1).then(data => {
  const { success } = data; 
});

pausePlay

最低 App 版本

3.17

描述

暂停播放

请求参数

param:null

返回结果

Promise 对象

使用示例

TYIpcNative.pausePlay().then(data => {
  const { success } = data; 
});

iosSnapShootToPhoneAlbums

最低 App 版本

3.17

描述

截图保存到手机相册(仅支持IOS)。

请求参数

param:null

返回结果

Promise 对象

使用示例

TYIpcNative.iosSnapShootToPhoneAlbums().then(data => {
  const { success, imageSrc } = data; 
  setState({
    imageSrc // 缩略图base64数据
  })
});

isMuting

最低 App 版本

3.17

描述

是否静音

请求参数

param:null

返回结果

Promise 对象

使用示例

TYIpcNative.isMuting().then(data => {
  const { isMuting } = data; 
  this.setState({
    isMuting,
  })
});

isRecording

最低 App 版本

3.17

描述

是否录制中

请求参数

param:null

返回结果

Promise 对象

使用示例

TYIpcNative.isRecording().then(data => {
  const { isRecording } = data; 
  this.setState({
    isRecording,
  })
});

isTalkBacking

最低 App 版本

3.17

描述

是否对讲

请求参数

param:null

返回结果

Promise 对象

使用示例

TYIpcNative.isTalkBacking().then(data => {
  const { isTalkBacking } = data; 
  this.setState({
    isTalkBacking,
  })
});

isHDOn

最低 App 版本

3.17

描述

是否对讲

请求参数

param:null

返回结果

Promise 对象

使用示例

TYIpcNative.isHDOn().then(data => {
  const { isHDOn } = data; 
  this.setState({
    isHDOn,
  })
});

enableHd

最低 App 版本

3.17

描述

高标清视频流切换(只有高标清可用此方法)。

请求参数

param: HD | SD

返回结果

Promise 对象

使用示例

TYIpcNative.enableHd('HD').then(data => {
   const { success } = data;
    if (success) {
     TYIpcNative.showToast('Video stream switch successfully');
   } else {
     TYIpcNative.showToast('Video stream switching failed');
   }
});

changeClarityAndAudio

最低 App 版本

3.17

描述

支持多类型视频流及音频模式 (需设备支持)

请求参数

param:SS | SD | HD | UD | SSP | AUDIO

  • SS: 省流量

  • SD: 标清

  • HD: 高清

  • UD: 超清

  • SSP: 超超清

  • AUDIO: 音频模式

返回结果

Promise 对象

使用示例

TYIpcNative.changeClarityAndAudio('AUDIO').then(data => {
  const { success } = data;
  if (!success) {
    TYIpcNative.showToast('Audio mode switch failed');
  } else {
    TYIpcNative.showToast('Audio mode switch successfully');
  }
});

enableMute

最低 App 版本

3.17

描述

声音模式切换

请求参数

param:ON | OFF

返回结果

Promise 对象

使用示例

TYIpcNative.enableMute('ON').then(data => {
   const { success } = data;
   if (success) {
     TYIpcNative.showToast('Sound switch successfully');
   } else {
     TYIpcNative.showToast('Sound switching failed');
   }
 });

snapShoot

最低 App 版本

3.17

描述

视频截屏

请求参数

param:null

返回结果

Promise 对象

使用示例

TYIpcNative.snapShoot().then(data => {
  const { success } = data;
  if (success) {
    console.log(data.imageSrc, 'Ios is Base64, Android is local path');
  } else {
    TYIpcNative.showToast('Screenshot failed');
  }
});

enableRecord

最低 App 版本

3.17

描述

开始及结束录像

请求参数

param: null

返回结果

Promise 对象

使用示例

TYIpcNative.enableRecord().then(data => {
  const { success, isRecording, isSaveErr } = data;
  if (isRecording && success) {
     TYIpcNative.showToast('Recording');
  } else if (!success && isSaveErr) {
    // Indicates save error
    TYIpcNative.showToast('Save err');
  } else if (!success && !isSaveErr) {
    // Indicates an enable error
    TYIpcNative.showToast('operation failed');
  } else {
     TYIpcNative.showToast('The video has been saved in the album');
  }
});

enableStartTalk

最低 App 版本

3.17

描述

开始单向对讲或双向通话(单向对讲过程中,声音模式为OFF,结束单向对讲后,声音模式为ON,双向通话过程中,声音模式为始终为 ON

请求参数

param:true | false (当前对讲模式是否为双向对讲)

返回结果

void

使用示例

// 通过 TYIpcPlayer 组件回调函数 onChangeSupportedMicWay onListenIsTalking 获取对讲方式以及是否正在对讲
const { isTwoWayTalk, isTalking } = this.props;
if (!isTalking) {
  TYIpcNative.enableStartTalk(isTwoWayTalk);
}

enableStopTalk

最低 App 版本

3.17

描述

结束单向对讲或双向通话(结束单向对讲后,声音模式为 ON,双向通话过程中,声音模式为始终为 ON

请求参数

param:true | false (当前对讲模式是否为双向对讲)

返回结果

void

使用示例

// 通过 TYIpcPlayer 组件回调函数 onChangeSupportedMicWay onListenIsTalking 获取对讲方式以及是否正在对讲
const { isTwoWayTalk, isTalking } = this.props;
if (isTalking) {
  TYIpcNative.enableStopTalk(isTwoWayTalk);
}

isSupportedCloudStorage

最低 App 版本

3.17

描述

设备是否支持云存储

请求参数

param:null

返回结果

Promise 对象

使用示例

TYIpcNative.isSupportedCloudStorage().then(data => {
  const { isSupported } = data;
  if (isSupported) {
    console.log('Support cloud storage');
  } else {
    console.log('Does not support cloud storage');
  }
})

showToast

最低 App 版本

3.17

描述

原生 App 弹出 toast 组件

请求参数

param:string

返回结果

void

使用示例

TYIpcNative.showToast('Anything you want to show');

enterPlayBack

最低 App 版本

3.17

描述

普通原生回放页面

请求参数

param: null

返回结果

void

使用示例

TYIpcNative.enterPlayBack();

enterParamPlayBack

最低 App 版本

3.20

描述

带参数的原生回放页面。支持黑白两套原生回放页面,支持传入 time 时间戳(单位:秒),播放固定时间点 { theme: number, time: 1599791519 } 。

  • theme:1 为黑色主题, 2 为白色主题。 不传 theme 字段默认黑色。

  • time:起始时间戳,不传默认当天日期从头播放。

请求参数

param: { theme?: number, time?: number }

返回结果

void

使用示例

TYIpcNative.enterParamPlayBack({ theme: 2, time: 1599791519 });

enterAlbum

最低 App 版本

3.17

描述

普通原生相册页面。

请求参数

param: null

返回结果

void

使用示例

TYIpcNative.enterAlbum();

enterParamAlbum

最低 App 版本

3.20

描述

带参数的原生相册页面 支持黑、白两套原生回放页面。

theme: 1 为黑色主题, 2为白色主题(必传)。

请求参数

param: null

返回结果

void

使用示例

TYIpcNative.enterParamAlbum({ theme: 2 });

enterCloudBack

最低 App 版本

3.17

描述

普通原生云存储页面

请求参数

param: null

返回结果

void

使用示例

TYIpcNative.enterCloudBack();

enterParamCloudBack

最低 App 版本

3.20

描述

带参数的云存储回放页面。支持黑白两套原生回放页面,支持传入 time 时间戳(单位:秒),播放固定时间点 { theme: number, time: 1599791519 } 。

  • theme:1 为黑色主题, 2 为白色主题。 不传 theme 字段默认黑色。

  • time:起始时间戳,不传默认当天日期从头播放。

请求参数

param: null

返回结果

void

使用示例

TYIpcNative.enterParamCloudBack({ theme: 2 });

enterMessageAll

最低App版本

3.17

描述

普通原生消息中心页面

请求参数

param: null

返回结果

void

使用示例

TYIpcNative.enterMessageAll();

enterParamMessageAll

最低 App 版本

3.17

描述

带参数的消息中心页面 支持黑、白两套原生回放页面。

theme: 1 为黑色主题,2 为白色主题。不传 theme 字段默认黑色。

请求参数

param: { theme: number }

返回结果

void

使用示例

TYIpcNative.enterParamMessageAll({ theme: 2 });

enterMediaPlayerPreview

最低 App 版本

3.17

描述

音频、图片、视频预览原生界面。

请求参数

param: {

devId: deviceId,

msgId: msgSrcId(消息id),

msgTitle: (消息标题) 可自定义,

msgTime: 时间显示(string),

type: 0 (视频) | 1 (音频) | 2 (图片),

mediaUrl: 视频、音频或图片的url地址
}

返回结果

void

使用示例

TYIpcNative.enterMediaPlayerPreview(param);

enterCameraSetting

最低 App 版本

3.17

描述

原生设置页面,设置主题配置可联系项目经理。

请求参数

param: null

返回结果

void

使用示例

TYIpcNative.enterCameraSetting();

setScreenOrientation

最低 App 版本

3.17

描述

横竖屏切换。通过 TYIpcPlayer 组件回调函数 onChangeScreenOrientation 绑定全屏的状态,同时 TYIpcPlayer 中传入 isFullScreen 是否为全屏的状态。

请求参数

param: 0 | 1 number 0 表示竖屏 1 表示横屏

返回结果

void

使用示例

// Horizontal screen
TYIpcNative.setScreenOrientation(1);
// Vertical screen
TYIpcNative.setScreenOrientation(0);

backPlayPreview

最低 App 版本

3.17

描述

离开视频预览界面(通常不会使用到,TYIpcPlayer 已内部使用)。

请求参数

param: true | null true 表示离开视频预览界面,需断开 P2P 连接。

返回结果

void

使用示例

// Disconnect P2P connection
TYIpcNative.backPlayPreview(true);
// Keep P2P connection
TYIpcNative.backPlayPreview();

enterRnPage

最低 App 版本

3.17

描述

从视频预览界面跳转到其它 Rn 一级界面,必须调用此方法。

请求参数

param: ( id: string, data: Object )

返回结果

void

使用示例

TYIpcNative.enterRnPage('rnPage', {attr1: value1, attr2: value2});

backNavigatorLivePlay

最低 App 版本

3.17

描述

从 Rn 界面返回视频预览界面的返回按钮。

请求参数

param: null

返回结果

void

使用示例

TYIpcNative.backNavigatorLivePlay();

backLivePlayWillUnmount

最低 App 版本

3.17

描述

从 Rn 界面返回视频预览界面的,Rn 页面销毁时调用(必调) 否则会出现返回预览界面画面冻结

请求参数

param: null

返回结果

void

使用示例

componentWillUnmount() {
  TYIpcNative.backLivePlayWillUnmount();
}

getWifiSignal

最低 App 版本

3.17

描述

获取设备信号强度0-100

请求参数

param: null

返回结果

Promise 对象

使用示例

TYIpcNative.getWifiSignal().then(data => {
  const { signalValue } = data;
  console.log('signalValue', `${signalValue}%`);
});

isMobileNetType

最低 App 版本

3.17

描述

获取手机当前是移动流量还是其它方式(宽带,Wi-Fi)播放,主要用于提示用户流量消耗

请求参数

param: null

返回结果

Promise 对象

使用示例

TYIpcNative.isMobileNetType().then(data => {
  const { isMobileNetWork } = data;
  if(isMobileNetWork) {
    console.log("You are currently using data playback");
  }
});

gotoHybridContainer

最低 App 版本

3.17

描述

跳转固定的移动 HTML5 页面

请求参数

param: h5Url

返回结果

void

使用示例

TYIpcNative.gotoHybridContainer(h5Url);

backFromActivityBrowser

最低 App 版本

3.17

描述

监听从移动 html5 页面返回

请求参数

param: null

返回结果

void

使用示例

import { TYSdk } from 'tuya-panel-kit';

const TYEvent = TYSdk.event;

componentDidMount() {
  TYEvent.on('backFromActivityBrowser', () => {});
}
componentwillUnMount() {
  TYEvent.off('backFromActivityBrowser');
}  

enterDeviceParamAlbum

最低 App 版本

3.22

描述

行车记录仪跳转设备本地相册。

  • theme:1 为黑色主题, 2 为白色主题。 不传 theme 字段默认黑色。

  • albumName:本地相册名

请求参数

param: { theme? : number, albumName: “ipc_emergency_record” }

返回结果

void

使用示例

TYIpcNative.enterDeviceParamAlbum(param);

openFloatWindow

最低 App 版本

3.36

描述

视频浮窗(非IPC品类设备调用,需在返回成功结果后调用关闭面板功能)。

请求参数

null

返回结果

Promise<{ success: boolean; err?: any }>

使用示例

import { TYIpcNative } from '@tuya/tuya-panel-ipc-sdk';
import { TYSdk } from 'tuya-panel-kit';

TYIpcNative.openFloatWindow().then((res) => {
    if (res.success) {
        TYSdk.native.back(); 
    }
});