1. 集成前端独立组件
上云 API 2 说明文档(KOC3)
  • 快速开始
  • 申请许可证
  • 联系我们
  • 软件下载
  • 使用上云 API 2 设备模拟器
  • 鉴权接入指南
  • 部署上云 API 2 应用运行与设备管控底座
    • 部署指南
    • 部署前准备
    • 开始部署
    • 能力扩展
  • 设备上云
    • 设备上云
    • 设备固件版本
  • 集成前端独立组件
    • 集成指南
    • 驾驶舱和设备小窗
    • 驾驶舱模块化配置
    • 设备管理组件
    • 航线组件
    • 直播大屏
    • 飞行记录
    • 集成参考
    • PaasJS 新增特性
  • SDK 文档
    • 基本介绍
      • SDK 简介
      • 功能特性
    • 快速入门
      • 准备工作
      • 使用流程
    • 接口调用
      • 接口调用时序图
    • SDK API 文档
      • 使用 API 文档查阅接口详情
    • SDK版本迁移指南
      • 迁移概述
      • 新增方法详情
      • API 变更详情
      • 迁移操作步骤
    • 功能集合
      • SDK初始化
      • SDK配置
      • DRC链路
      • 飞机状态监听
      • 飞向目标点
      • 飞行参数设置
      • 飞行记录导出
      • POI 环绕飞行
      • 一键起飞
      • 航线任务管理
      • 航线任务控制
      • 航线资产管理
      • 机场状态监听
      • 控制权管理
      • 机场控制
      • 飞行控制
      • AI Box 管理
      • AI 智能告警
      • 机载 AI 控制
      • 机载 AI 算法管理
      • PSDK 控制
      • PSDK 资源管理
      • RTK 标定
      • 安全服务
      • 固件管理
      • 媒体服务
      • 日志管理
      • 三维重建
      • 设备管理
      • 设备保修维护
      • 设备健康管理
      • 设备远程调试
      • 设备在线状态
      • 相机控制
      • 直播录制
      • 直播设备管理
      • 直播视频流
      • 直播同步
      • 中继器控制
      • 自定义 SEI
      • WHEP 自定义拉流
      • 网络测速
      • 地图元素管理
      • 频闪灯配置
  • 使用上云 API 2 AI Plugin
    • 上云 API 2 AI Plugin 使用指南
  • 使用上云 API 2 二次开发 Demo
    • 上云 API 2 二次开发 Demo 部署指南
    • 上云 API 2 二次开发 Demo - 无人机管理平台使用说明
  • 排障指南
    • 前端独立组件排障指南
    • SDK排障指南
  1. 集成前端独立组件

直播大屏

目录#

1.
概览与架构说明
2.
引入 SDK 资源
3.
全局初始化
4.
创建单路播放器
5.
组合成直播大屏(多路网格)
6.
事件监听
7.
常用方法
8.
销毁播放器
9.
错误码说明
10.
地面站设备支持
11.
浏览器兼容性与 Token 说明

一、概览与架构说明#

⚠️ 直播大屏涉及直播功能,必须使用 HTTPS 协议部署。HTTP 环境下浏览器安全策略会限制 WebRTC 能力,导致直播无法正常使用。所有服务地址须使用 https:// 和 wss://。
与其他组件的关键区别:
特性说明
是否依赖 paas.js❌ 完全独立,不依赖
多实例支持✅ 天然支持,每个实例独立管理自己的容器和播放状态
接入方式CDN 引入,通过 window.DJILivePlayer 使用
适用场景单路直播、多路直播大屏网格
官方 Demopaasjs-demo/multi-stream-cdn/index.html(Vue 3 SPA,含布局切换/OSD 设置等)
功能特性:
传入设备 sn,组件自动完成设备查询、直播源匹配、开播和渲染
工具栏:刷新、全屏、停止、画质切换
状态覆盖层:loading / error / offline / autoplay_blocked / need-auth
图传信号强度指示(飞机直播;地面站不展示)
设备离线轮询恢复、自动重试
⚠️ 同一个 sn + camera + video 组合不能重复开播,否则报 DUPLICATE_INSTANCE。

二、引入 SDK 资源#

只需引入 SDK 自身两个文件,不需要 paas.js:
加载完成后,挂载在 window.DJILivePlayer,包含:
全局名内容
window.DJILivePlayer.initLivePlayer全局初始化函数
window.DJILivePlayer.DjiLivePlayer播放器主类(构造函数)

三、全局初始化#

渲染任何播放器之前必须调用一次。多路播放器共用同一份配置,不需要每个播放器单独初始化。
InitLivePlayerOptions 参数
字段类型必填说明
serverUrlstring✓后端地址,不带 /gateway(内部自动追加)
auth.authKeysstring[]✓鉴权 header 名称列表
auth.headersobject | (() => object)✓推荐函数形式,每次请求实时取值
locale'zh-CN' | 'en-US'否默认 'zh-CN'
cameraAuthVerifyUrlstring否地面站外设摄像头验密跳转链接;不传则回退到内置默认页
⚠️ auth.headers() 闭包在每次 HTTP 请求时被调用,须保证返回最新 token。

四、创建单路播放器#

每个播放器需要一个有显式宽高的 DOM 容器:
LivePlayerOptions 参数
属性类型默认值说明
containerstring | HTMLElement—挂载容器,CSS 选择器或 DOM 节点
snstring—设备 SN,自动解析模式
sourceLivePlayerSource—高级模式,跳过设备解析直接开播
fillMode'contain' | 'fill''contain'视频填充模式
showOsdbooleanfalse是否显示 OSD 信息
autoReconnectbooleantrue设备离线时自动轮询恢复
pollIntervalnumber15000离线轮询间隔(ms)
retryCountnumber3异常自动重试次数
enableQualitySwitchbooleantrue是否显示画质切换按钮
enableCameraSwitchbooleantrue是否显示摄像头切换(仅地面站且候选摄像头 > 1 时生效)
最小可运行示例(单路)

五、组合成直播大屏(多路网格)#

组件本身是单路播放器,"直播大屏"由调用方自行组合多个实例,配合 CSS Grid 拼成网格。

六、事件监听#

事件回调参数触发时机
ready—首帧渲染完成
errorLivePlayerError播放异常
resolvedResolvedInfo设备解析完成
stateChangeLivePlayerState状态变更
deviceOffline—设备离线
close—点击关闭按钮
状态机流程:
idle → resolving → starting → playing
                             → autoplay_blocked → (手动点击)→ starting
                             → error → (自动/手动重试)→ starting
                             → offline → (轮询恢复)→ starting
any → destroyed

七、常用方法#

方法说明
player.refresh()重新查询设备 + 尝试开播
player.retry()手动重试
player.stop()停止播放,回到 idle 状态
player.switchQuality(q)切换画质
player.switchCamera(camera)切换摄像头(地面站多摄像头场景,camera 为 ResolvedInfo.cameras[].camera)
player.destroy()销毁播放器(幂等)
player.getState()获取当前状态快照

八、销毁播放器#


九、错误码说明#

⚠️ 本组件使用独立的字符串错误码,与 WaylineEditor/FlyDataReplay 共用的数字错误码(4001/5000/6002...)完全不同。
错误码说明
NOT_INITIALIZED未调用 initLivePlayer()
INVALID_SNSN 格式无效
DEVICE_NOT_FOUND设备未找到
AMBIGUOUS_DEVICE_MATCH多个设备匹配,无法确定
DEVICE_OFFLINE设备离线
NO_LIVE_CAPACITY设备无直播能力
NO_LIVE_CAMERA无可用摄像头
NO_VIDEO_STREAM无可用视频流
START_LIVE_FAILED开播失败
PLAYER_INIT_FAILED播放器引擎初始化失败
CHANNEL_EXCEPTION直播通道异常
TOKEN_EXPIREDToken 过期
AUTH_FAILED认证失败
NETWORK_DISCONNECTED网络连接断开
DUPLICATE_INSTANCE同 SN/Camera/Video 重复实例
DRTC_SDK_LOAD_FAILEDDRTC SDK 加载失败
QUALITY_SWITCH_FAILED画质切换失败
CAMERA_NEED_AUTH外设摄像头需要验密才能播放
典型错误处理:

十、地面站设备支持#

地面站设备(device_model.class === 'base_station')与机场/飞机相比,展示和交互上有以下差异:
图传信号指示器
地面站没有 SDR 信号数据,resolved 事件回调的 ResolvedInfo.deviceType === 'base_station' 时,组件自动隐藏图传信号指示器,ISV 无需额外处理。
多摄像头切换
地面站可能挂载多个外设摄像头,当 enableCameraSwitch 为 true(默认)且候选摄像头数 > 1 时,工具栏出现摄像头切换按钮。ResolvedInfo.cameras 提供可选摄像头列表(含中文 cameraName),也可调用 player.switchCamera(camera) 手动切换。
外设摄像头验密
部分外设摄像头需要验密才能播放,命中时组件展示 need-auth 覆盖层,点击"去验证"后跳转到验密页:
跳转链接优先取 initLivePlayer({ cameraAuthVerifyUrl })
未配置则回退到内置默认页

十一、浏览器兼容性与 Token 说明#

浏览器兼容:
Chrome 80+、Edge 80+、Safari 14.1+、Firefox 80+
需要 WebRTC 支持(DRTC 协议依赖)
移动端浏览器受限于自动播放策略,可能触发 autoplay_blocked 状态
Token 机制说明:
层级说明
HTTP 层auth.headers() 为函数形式,每次请求时实时取值,请确保返回有效 token
RTC 层内部自动监听 TOKEN_WILL_EXPIRE 事件进行续期
组件层仅监听 TOKEN_EXPIRED 事件,通过 error 回调通知调用方处理
Token 刷新需由调用方自行实现,请监听 error 事件处理 token 过期:

典型流程速查#

场景调用顺序
单路直播initLivePlayer()(一次)→ new DjiLivePlayer({ container, sn })
多路直播大屏initLivePlayer()(一次)→ 遍历 SN 分别 new DjiLivePlayer()
切换设备player.destroy() → new DjiLivePlayer({ container, sn: newSn })
鉴权刷新auth.headers 传函数形式,每次请求实时取值
卸载单个player.destroy()
卸载全部遍历调用每个实例的 destroy()

上一页
航线组件
下一页
飞行记录
Built with