Android 端集成指引

音视频直播 LSS

  • 播放器SDK
  • Demo体验
  • 产品动态
  • 产品描述
    • 功能特性
    • 产品概述
    • 产品优势
    • 应用场景
    • 核心概念
  • 控制台操作指南
    • 多用户访问控制
    • LSS概览
    • 标签管理
    • 黄反审核
    • 安全策略
    • 开通LSS
    • 日志管理
    • 质量监控
    • 操作指引
    • 统计分析
      • 用量查询
      • 直播域名
      • 用户行为
    • 模板管理
      • 缩略图模板
      • 水印模板
      • 通知模板
      • 转码模板
      • 录制模板
    • 域名管理
      • 配置HTTPS
      • 时移&回看功能
      • 配置CNAME
      • 关闭域名
      • 添加域名
      • 删除域名
      • 开启域名
      • 配置转推功能
    • 流管理
      • 查询流信息
      • 新建流
  • 入门指南
    • 开始使用LSS
    • 创建推流和播放域名
    • 快速入门流程
  • 第三方工具使用指南
    • OBS推流工具使用指南
  • 服务等级协议SLA
    • LSS服务等级协议SLA
  • API参考
    • 日志下载接口
    • 统计接口
    • 模板接口
    • 文档更新记录
    • 通知接口
    • Stream接口
    • 轮播接口
    • 错误返回
    • 录制视频裁剪
    • 使用须知
    • 公共头域
    • 概述
  • 常见问题
    • API、SDK使用类问题
    • 计费类问题
    • 使用类问题
    • 常见问题总览
    • 性能类问题
    • 安全类问题
  • 视频专区
    • 操作指南
    • 开通直播服务
    • 新手入门
    • 产品简介
  • 低延时直播
    • 低延时直播概述
    • Demo和SDK接入说明
    • 低延时直播RTL SDK隐私政策
    • 低延时直播和标准直播区别
    • 低延时直播RTL SDK开发者个人信息保护合规指引
    • 低延时直播快速入门
    • SDK集成指南
      • SDK集成指南
      • 低延时传输层SDK
        • SDK接口说明
        • iOS端SDK集成指引
        • Android端SDK集成指引
      • 低延时全功能SDK
        • Android 端集成指引
  • 产品定价
    • 余额不足提醒和欠费处理
    • 账单
    • 购买流程
    • 计费方式变更
    • 计费概述
    • 预付费资源包
    • 退款说明
    • 直播增值服务费用
      • 直播录制
      • 直播审核
      • 直播转推
      • 直播转码
      • 直播时移
      • 直播截图
    • 直播基础服务费用
      • 标准直播服务费用
      • 低延时直播服务费用
  • 服务端SDK
    • 服务端PHP-SDK
      • 异常处理
      • 安装LSS-PHP-SDK
      • 安装LssClient
      • LSS开发指南
    • 服务端Java-SDK
      • 录制功能
      • 统计功能
      • 通知功能
      • Java-SDK-文档
      • 安装LSS-Java-SDK
      • stream管理
      • LssClient
  • 推流端SDK
    • iOS端推流SDK
      • 简介
      • 推流-SDK-开发指南
    • Android端推流SDK
      • 简介
      • 推流-SDK-开发指南
所有文档
menu
没有找到结果,请重新输入

音视频直播 LSS

  • 播放器SDK
  • Demo体验
  • 产品动态
  • 产品描述
    • 功能特性
    • 产品概述
    • 产品优势
    • 应用场景
    • 核心概念
  • 控制台操作指南
    • 多用户访问控制
    • LSS概览
    • 标签管理
    • 黄反审核
    • 安全策略
    • 开通LSS
    • 日志管理
    • 质量监控
    • 操作指引
    • 统计分析
      • 用量查询
      • 直播域名
      • 用户行为
    • 模板管理
      • 缩略图模板
      • 水印模板
      • 通知模板
      • 转码模板
      • 录制模板
    • 域名管理
      • 配置HTTPS
      • 时移&回看功能
      • 配置CNAME
      • 关闭域名
      • 添加域名
      • 删除域名
      • 开启域名
      • 配置转推功能
    • 流管理
      • 查询流信息
      • 新建流
  • 入门指南
    • 开始使用LSS
    • 创建推流和播放域名
    • 快速入门流程
  • 第三方工具使用指南
    • OBS推流工具使用指南
  • 服务等级协议SLA
    • LSS服务等级协议SLA
  • API参考
    • 日志下载接口
    • 统计接口
    • 模板接口
    • 文档更新记录
    • 通知接口
    • Stream接口
    • 轮播接口
    • 错误返回
    • 录制视频裁剪
    • 使用须知
    • 公共头域
    • 概述
  • 常见问题
    • API、SDK使用类问题
    • 计费类问题
    • 使用类问题
    • 常见问题总览
    • 性能类问题
    • 安全类问题
  • 视频专区
    • 操作指南
    • 开通直播服务
    • 新手入门
    • 产品简介
  • 低延时直播
    • 低延时直播概述
    • Demo和SDK接入说明
    • 低延时直播RTL SDK隐私政策
    • 低延时直播和标准直播区别
    • 低延时直播RTL SDK开发者个人信息保护合规指引
    • 低延时直播快速入门
    • SDK集成指南
      • SDK集成指南
      • 低延时传输层SDK
        • SDK接口说明
        • iOS端SDK集成指引
        • Android端SDK集成指引
      • 低延时全功能SDK
        • Android 端集成指引
  • 产品定价
    • 余额不足提醒和欠费处理
    • 账单
    • 购买流程
    • 计费方式变更
    • 计费概述
    • 预付费资源包
    • 退款说明
    • 直播增值服务费用
      • 直播录制
      • 直播审核
      • 直播转推
      • 直播转码
      • 直播时移
      • 直播截图
    • 直播基础服务费用
      • 标准直播服务费用
      • 低延时直播服务费用
  • 服务端SDK
    • 服务端PHP-SDK
      • 异常处理
      • 安装LSS-PHP-SDK
      • 安装LssClient
      • LSS开发指南
    • 服务端Java-SDK
      • 录制功能
      • 统计功能
      • 通知功能
      • Java-SDK-文档
      • 安装LSS-Java-SDK
      • stream管理
      • LssClient
  • 推流端SDK
    • iOS端推流SDK
      • 简介
      • 推流-SDK-开发指南
    • Android端推流SDK
      • 简介
      • 推流-SDK-开发指南
  • 文档中心
  • arrow
  • 音视频直播LSS
  • arrow
  • 低延时直播
  • arrow
  • SDK集成指南
  • arrow
  • 低延时全功能SDK
  • arrow
  • Android 端集成指引
本页目录
  • 概述
  • 功能介绍
  • Demo体验
  • SDK 下载
  • 快速集成
  • 快速开始
  • 接口说明
  • BRTCPlayerParameters类
  • SignalingMode 枚举类
  • BRTCPlayerEvents类
  • RTCVideoView类
  • BRTCPlayer接口

Android 端集成指引

更新时间:2025-08-21

概述

百度云超低延时直播(BRTCPlayer)全功能版本是在百度智能云视频直播的基础上通过链路传输协议优化,解决传统直播延迟过高的弊端,通过集成百度智能云播放器SDK,可以支持千万级并发场景的毫秒级延时直播,并为用户提供低卡顿、秒开流畅的直播观看体验。

功能介绍

BRTCPlayer 主要功能如下:

  • 多信令模式:支持HTTP及基于Minisdp的udp信令模式;支持BD UDP私有信令模式:0 RTT 极速启播,有效提升秒开率;
  • 支持AVC、HEVC视频硬解码;
  • 支持视频B帧:引入B帧,可在清晰率不变的情况下降低码率;
  • 支持AAC音频解码,支持MP4A-ADTS、LATM格式 48000 及 44100 采样率;
  • 支持视频平滑渲染: 网络抖动时,平滑渲染视频帧, 降低卡顿;
  • 支持最小延迟动态配置:可实现延迟换流畅,在允许范围内增大延迟可有效降低卡顿;
  • 支持网络健康度实时检测;
  • 支持 SEI 消息;

Demo体验

前往DEMO下载页面扫码安装DEMO

SDK 下载

前往SDK下载页面下载支持超低延时全功能SDK版本, 内含Demo源码;

快速集成

百度云超低延时直播由独立SDK提供支持,用户可通过在播放侧单独集成BRTCPlayer SDK实现超低延时直播,而推流侧则可复用当前使用的推流器,仅需在百度直播LSS平台针对当前域名开通低延时播放能力。 BRTCPlayer SDK具体的集成步骤如下:

  • 导入BRTCPlayer aar到工程,集成后的示例如下:

image.png

  • 修改 build.gradle
Java
1dependencies {
2    implementation fileTree(dir: 'libs', include: ['brtcplayer.aar'])
3    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
4    ...
5}
  • 添加混淆规则
Plain Text
1-keepclasseswithmembernames,allowshrinking,allowoptimization class * {
2    native <methods>;
3}
4
5-keep interface * {
6    public <fields>;
7    public <methods>;
8}
9
10-keep class com.baidu.rtc.** {*;}
11-keep class com.webrtc.** {*;}

快速开始

  1. 创建播放渲染视窗
Java
1// 在布局文件中添加渲染控件
2<com.baidu.rtc.RTCVideoView
3        android:id="@+id/brtc_video_view"
4 		android:layout_width="match_parent"
5        android:layout_height="match_parent" />
6
7// 寻回渲染控件对象
8mVideoView = (RTCVideoView) findViewById(R.id.brtc_video_view);
  1. 创建播放器对象及播放器初始化
Java
1// 创建播放器对象
2mBRTCPlayer = new BRTCPlayerImpl(this);
3// 创建播放参数集,初始化播放器
4mPlayerParameters = new BRTCPlayerParameters();
5// 设置播放器信令服务地址
6mPlayerParameters.setPullUrl(mSignalUrl);
7// 设置信令模式
8mPlayerParameters.setSignalingMode(mSignalingMode);
9// 初始化播放器 传入播放参数及事件监听器
10mBRTCPlayer.initPlayer(mPlayerParameters, this);
  1. 播放设置
Java
1// 设置播放渲染视图
2mBRTCPlayer.setSurfaceView(mVideoView);
3// 设置媒体流地址
4mBRTCPlayer.setStreamUri(mStreamUrl);
  1. 播放控制
Java
1// 准备播放,获取播放依赖资源
2mBRTCPlayer.prepareAsync();
3// 开始播放
4mBRTCPlayer.startPlay();
5// 暂停播放
6mBRTCPlayer.pausePlay();
7// 恢复播放
8mBRTCPlayer.resumePlay();
9// 停止播放
10mBRTCPlayer.stopPlay();
  1. 释放播放器
Java
1// 释放播放器
2mBRTCPlayer.releasePlayer();

在智能视频SDK Demo中对上述流程有详细的展示,可以参考;

接口说明

BRTCPlayerParameters类

接口名 描述 备注
void setEnableDebug(boolean enable) 设置是否开启debug日志 无
void setPullUrl(String pullUrl) 设置信令服务地址,格式为http[:s]//domain/brtc/v3/pullstream 仅HTTP信令
void void setSignalingMode(SignalingMode signalingMode) 设置信令模式 默认HTTP信令
void setAutoPlay(boolean autoPlay) 设置是否自动启播,默认false 设置后调用prepareAsync后自动播放
void void setEnableSilentStart(boolean enable) 设置静音启播 无
void setBaseDelayMs(int baseDelayMs) 设置最小延时, 可通过该参数增大延时降低卡顿提升播放流畅度 非必需
void setCpuType(String cpuType) 指定下载的SO库CPU架构 非必需,开启so后下载配置
void setVideoDecodeFormat(int videoDecodeFormat) 设置视频解码格式,由业务侧确定是否为H265格式,默认为H264格式 仅UDP_RTL信令
void setAudioSampleRate(int sampleRate) 设置音频播放采样率[48000, 44100], 仅UDP_RTL信令模式 仅UDP_RTL信令
void setEnableVideoBFrame(boolean bFrame) 是否开启B帧支持,由业务侧决定是否开启 默认开启
void setMediaServerIp(String mediaServerIp) 预设媒体服务IP地址以加速启播 非必需,可配合HttpDns使用
void setEnableFirstFrameReconnect(boolean enable) 当前播放超过2s没有出首帧则使用Http信令模式重试一次 默认开启

SignalingMode 枚举类

枚举类型 信令模式 备注
HTTP_RTL HTTP信令 自协商媒体参数
UDP_RTL 百度私有UDP信令 使用该模式时需通过BRTCPlayerParameters类预设音视频媒体类型参数
UDP_MINISDP MINISDP UDP 信令 自协商媒体参数

BRTCPlayerEvents类

错误码 含义
BRTC_PLAYER_ERROR_INVALID_URL = 10000 URL 格式错误
BRTC_PLAYER_ERROR_ICE_CHANNEL = 10001 ICE 连接错误
BRTC_PLAYER_ERROR_RESERVED = 10002 替换预留错误码
BRTC_PLAYER_ERROR_CONNECTION = 10003 连接创建失败
BRTC_PLAYER_ERROR_LOCAL_SDP_REQUEST = 10004 媒体描述请求失败
BRTC_PLAYER_ERROR_LOCAL_SDP_SET = 10005 媒体描述设置失败
BRTC_PLAYER_ERROR_REMOTE_SDP_REQUEST = 10006 远端媒体描述请求失败,一般由于启播放时主播侧已停播
BRTC_PLAYER_ERROR_REMOTE_SDP_SET = 10007 远端媒体描述设置失败
BRTC_PLAYER_ERROR_INVALID_STATE = 10008 播放状态错误
BRTC_PLAYER_ERROR_STREAMING_INTERRUPT = 10009 媒体流中断,一段时间未收媒体流,SDK内部检测到断流错误后会立即停止播放,一般在播放中主播停播但业务侧未退出
BRTC_PLAYER_ERROR_LOAD_LIBRARIES = 10010 SO库文件后下载失败
BRTC_PLAYER_ERROR_INVALID_LICENSE = 100011 license错误
BRTC_PLAYER_ERROR_LICENSE_FEATURE_INVALID = 10012 当前license不包含低延时播放feature(废弃)
BRTC_PLAYER_ERROR_DECODER_OPEN_FAILED = 10013 解码器打开失败
int BRTC_PLAYER_ERROR_MTU_SIZE_CHECK_FAILED = 10014 用户网络MTU Size 检测失败,无法支持RTC媒体传输,约2s后返回,建议业务侧降级为普通播放
int BRTC_PLAYER_ERROR_SET_EXTERNAL_SURFACE = 10015 设置外部渲染错误, 重复设置相同外部Surface
int BRTC_PLAYER_ERROR_ILLEGAL_STATE = 10016 非法状态错误

事件码 含义
BRTC_PLAYER_EVENT_REMOTE_RENDER = 1000 开始远端渲染
BRTC_PLAYER_EVENT_ICE_CONNECTED = 1001 ICE连接成功
BRTC_PLAYER_EVENT_PEER_CONNECTION_CLOSED = 1002 对端连接关闭
BRTC_PLAYER_EVENT_STATS_UPDATED = 1003 媒体流信息更新
BRTC_PLAYER_EVENT_BUFFERING_START = 1004 Buffering start事件
BRTC_PLAYER_EVENT_BUFFERING_END = 1005 Buffering end事件
BRTC_PLAYER_EVENT_ICE_DISCONNECTED = 1006 ICE连接断开
BRTC_PLAYER_EVENT_FIRST_AUDIO_PLAYOUT = 1007 音频首帧播放出事件, 若业务侧设置初始静音播放,则可在该事件恢复音频播放
BRTC_PLAYER_EVENT_PLAY_TIME_STATISTIC = 1008
BRTC_PLAYER_EVENT_LOCAL_SDP_SET = 1009
BRTC_PLAYER_EVENT_REMOTE_SDP_ACQUIRED = 1010
BRTC_PLAYER_EVENT_LIBS_DOWNLOAD_COMPLETED = 1011
BRTC_PLAYER_EVENT_LIBS_LOADED_SUCCESS = 1012
BRTC_PLAYER_EVENT_RENDERVIEW_VISIBLE = 1013
启播各阶段耗时统计
BRTC_PLAYER_EVENT_DECODER_OPENED = 1014 解码器成功打开
BRTC_PLAYER_EVENT_START_RECONNECT = 1015 内部播放重连
BRTC_PLAYER_EVENT_LINK_DOWN = 1016 播放链路带宽不足,建议业务侧尝试低码率流播放
BRTC_PLAYER_EVENT_FIRST_AUDIO_PLAYOUT = 1007 没有检测到媒体流

事件回调 含义
void onPrepared() 播放器准备就绪
void onFirstFrameRendered() 首帧渲染事件
void onResolutionChanged(int w, int h) 分辨率更新回调
void onError(int errCode, String msg) 错误错误回调,错误码定义见前文
void onInfoUpdated(int event, Object msg) 事件更新回调,事件码定义见前文
void onPlayerStateChanged(BRTCPlayer.PlayerState currentState) 播放状态更新
void onSEIRecv(ByteBuffer data) 接收到SEI 消息,回调在解码线程,不应在该回调里实现复杂业务

SEI 数据格式(h264):[nal_type(1)|sei_type(1)|sei_size(n+1)|sei_payload(n*255+m)|trailing_bits(1)]
sei_size: 需判断第3个字节起连续0xFF的个数n,加第1个不为0xFF的字节(如: 0x21),该字段占字节数为 n + 1; 其值为:0xFF*n+0x21;
sei_payload: SEI字段的值(h265);如:[ 0x06 0x05 0x18 0x54 0x80 0x83 0x97 0xF0 0x23 0x47 0x4B 0xB7 0xF7 0x4F 0x32 0xB5 0x4E 0x06 0xAC 0x27 0x11 0xFE 0x69 0x79 0x01 0x00 0x00 0x80 ]
注: h265 与 h264 的 sei 格式略有不同, h264 的nal_type 为 0x06, sei_type 为0x 05; h265 的 nal_type 为 0x4e, sei_type 为两字节 0x01、0x05;

RTCVideoView类

枚举类型 描述
ScalingType.SCALE_ASPECT_FIT 缩放模式:适应
ScalingType.SCALE_ASPECT_FILL 缩放模式:拉伸

BRTCPlayer接口

接口名 描述
long initPlayer(BRTCPlayerParameters playParameters, BRTCPlayerEvents events) 初始化播放器。
playParameters 播放参数集
events 播放事件监听
void setEventObserver(BRTCPlayerEvents events) 设置播放事件监听
void setSurfaceView(RTCVideoView surfaceView) 设置播放渲染视窗,当前只支持RTCVideoView
void setScalingType(RTCVideoView.ScalingType scaleType) 设置播放视窗缩放模式
void prepareAsync() 准备播放
void setPlayWhenReady(boolean autoPlay) 设置是否自动启播,默认false
void startPlay() 开始播放
void pausePlay() 暂停播放,不停止拉流,仅暂停本地媒体流渲染
void resumePlay() 恢复播放,从暂停状态恢复播放
void stopPlay() 停止播放,停止媒体拉流及渲染,再次播放需调用startPlay()
boolean hasVideo() 媒体流是否包含视频流
boolean hasAudio() 媒体流是否包含音频流
void releasePlayer() 释放播放器
void setVolume(double volume) 设备播放音量
void setStreamUri(String streamPath) 设置播放媒体流地址,媒体流URL格式为webrtc://domain/app/stream
PlayerState getPlayerState() 获取播放状态

上一篇
低延时传输层SDK
下一篇
产品定价