轻量播放器

轻量播放器基于 Ray 的 IpcPlayer 封装,整合了基础通用组件和拉流能力,便于业务快速接入 IPC 播放功能。

业务匹配

如果您的业务场景不需要融合播放器提供的丰富内置能力,且希望对 UI 和交互进行一定程度的定制,同时无需关注拉流控制等底层逻辑,推荐按以下步骤接入轻量播放器,快速构建符合业务需求的播放器。

安装依赖

yarn add @ray-js/ray-ipc-player

使用示例

注意: 目前 IDE 开发暂不支持视频流的实时播放,还需通过真机进行调试。

import IpcPlayer from '@ray-js/ray-ipc-player';

function Page() {

  const deviceId = '1234567890xxxxxx';
  // 设备在线状态
  const onlineStatus = true; 
  // 获取播放器实例, 可以调用播放器实例上的方法
  const onCtx = (ctx) => {
    console.log(ctx, 'ctx');
  };
  // 监听播放器状态
  const onChangeStreamStatus = (status) => {
     console.log(status, 'status');
  };

  return (
    // playerContainer 为播放器容器, 设置播放器的区域大小
    <View className={Styles.playerContainer}>
      <IpcPlayer
          objectFit='contain'
          onCtx={onCtx}
          devId={deviceId}
          onlineStatus={onlineStatus}
          onChangeStreamStatus={onChangeStreamStatus}
        />
     </View>    
  )
}

播放器容器样式

.playerContainer {
  width: 100%;
  height: 300px;
}

参数说明

参数名类型必填描述
devIdstring是设备 ID
onlineStatusbool是设备在线状态
objectFitfillCrop 或 contain否视频填充模式 (tips: 横竖屏切换时,可匹配不同的填充模式)
privateStatebool否隐私模式
rotateZnumber否画面旋转角度
clarityClarityType否画面清晰度
mutedbool否是否静音
scalablebool否是否允许画面手动缩放
ptzControllablebool否是否支持画面云台转动控制
onCtxfunction否获取播放器实例
onChangeStreamStatusfunction否监听播放器状态
onVideoTapfunction否点击视频画面事件
extendobject否动态扩展参数(默认值为), 适用于随 APP 升级,新增属性使用

更多通用属性使用可参考 IpcPlayer

播放器推送状态主要说明 status

参数名说明
1001建立连接成功
-1001建立连接失败
1002拉流成功
-1002拉流失败

组件实现

提示: 当然您也可以通过基础 IpcPlayer 与 createIpcPlayerContext 自主控制播放流程。

IpcPlayer

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

用于渲染视频画面的核心组件。详细用法可参考官方文档:IpcPlayer

IpcContext

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

用于创建播放器实例, 建立设备绑定关系, 更多说明请参见: createIpcPlayerContext

用于管理播放器生命周期和控制指令的上下文对象。更多说明请参见:IpcContext