播放器按功能分为三种:

  • 直播播放器
    • 用于RTMP直播源,具有时延低的特点
  • 设备录像点播播放器

    用于设备录像回放的播放,可调整播放进度

  • HLS播放器
    • 用于基于HLS的云端录像回放的播放,支持MPEG-TS和FMP4容器,AES-128加密方式
    • 提供两种HLS播放器供选择:自研HLS播放器和基于ExoPlayer封装的播放器

FFmpeg使用版本为n4.0.1. 音频编码支持AAC_LC和G711a. 视频编码支持H264和HEVC.

功能列表:

功能 直播播放器 设备录像点播播放器 HLS播放器(自研) HLS播放器(ExoPlayer)
视频播放
音频播放
暂停/恢复 x
跳至指定位置播放 x
总时长 x
当前播放进度 x
播放器状态变更通知
设置播放音量
变速播放 x x
循环播放 x x x
画面缩放模式设置
播放器截图
截图到文件 x
边播边录 x
提供YUV数据 x

播放器状态介绍

通过设置播放器状态监听器,可接收到状态变更事件,用于相关UI元素的变更。

状态变更事件如:播放中发生错误、主动停止播放等。

播放器状态
  • IDLE:播放器没有任何内容播放时的状态。
  • BUFFERING:播放器正在缓冲,当前的位置还不可以播放。状态变更事件如:开始播放时缓冲、seek后重新缓冲。
  • READY:播放器已经有内容在播放。状态变更事件如:首帧数据已经渲染、seek缓冲完成开始播放新内容。对于点播播放器,若已seek或播放到文件结尾,则会回调OnCompletionListener.onCompletion()方法,状态不会切换到ENDED。
  • ENDED:播放器已结束播放。播放出错或stop后会切换到该状态。

错误列表

错误主码 描述 子码 描述
SOURCE_ERROR 数据源相关错误 SUB_CODE_SOURCE_STREAM_CONNECT_ERROR(1005) 与数据源建立连接失败
SUB_CODE_SOURCE_INVALID_DECRYPTE_KEY(1006) 无效的解密密钥
SUB_CODE_SOURCE_INVALID_RTMP_URL(1007) 无效的播放地址
SUB_CODE_SOURCE_PARAMETER_ERROR(1008) 错误的数据源参数
SUB_CODE_SOURCE_QUERY_URL_FAILED(1009) 请求播放地址失败
RENDER_ERROR 渲染相关错误 SUB_CODE_RENDER_DECODE_ERROR(1000) 解码错误
UNEXPECTED_ERROR 不符合预期错误 SUB_CODE_UNEXPECTED_PULL_STREAM_ERROR(1100) 拉流失败,8S未拉取到流或连接被异常断开