实时语音
  • iOS
  • Android : Java
  • Windows
  • 概述
  • 限制说明
  • SDK 下载
  • 快速开始
  • 进阶功能
  • API 文档
  • 常见错误码
  • 语音通话
  • 语音直播
  • 游戏语音
  • 文档中心
  • 实时语音
  • 快速开始
  • 播放直播

播放直播

更新时间:2021-04-25 20:25

1 简介

登录房间成功后,SDK 会自动拉流播放直播。用户无需手动触发拉流。

但如果想获取播放流状态,需要进行代理设置。

2 步骤

2.1 初始化 SDK

参考文档:快速开始-初始化

2.2 设置播放代理对象

调用如下 API 设置 ZegoAudioLivePlayerDelegate 代理对象。设置代理对象失败,会导致 App 收不到相关回调

/**
 * 设置 ZegoAudioLivePlayerDelegate 代理对象。
 * 登录房间前,务必要设置代理对象
 * 设置代理对象失败,会导致 App 收不到相关回调
 * 
 * @param playerDelegate 实现 ZegoAudioLivePlayerDelegate 接口的对象实例
 */
public void setAudioPlayerDelegate(ZegoAudioLivePlayerDelegate playerDelegate);

2.3 登录房间

调用如下 API 登录房间。无论是手动/自动发布直播模式,登录房间后,SDK 均会自动拉流,无需用户手动操作

/**
 * 登录房间。
 *
 * @param roomID 房间 ID,App 需保证其唯一性
 * @param completionCallback 登录完成回该实例的 onLoginCompletion 方法
 * 
 * @return true:登录成功,false:登录失败
 */
public boolean loginRoom(String roomID, ZegoLoginAudioRoomCallback completionCallback);

常见登录错误码参考如下:

错误码 错误原因
stateCode = 0 登录成功
stateCode = 1042 网络连不上。请检查当前网络是否正常
stateCode = 1048677 测试环境或者正式环境设置错误。如果使用测试环境,
请确保在 initWithAppId 之前设置 setUseTestEnv(true)
stateCode = 268435457 超出房间能容纳的最大连接数

2.4 处理播放状态回调

自动播放开始后,开发者需在如下回调中处理播放状态和流信息

/**
 * 播放状态更新回调。
 * 调用 [ZegoAudioRoomApi (Player) -setAudioPlayerDelegate] 设置代理对象成功后,客户端才能收到此通知
 *
 * @param stateCode 状态码。0 表示无错误
 * @param stream 流信息
 */
public void onPlayStateUpdate(int stateCode, ZegoAudioStream stream);

常见播放错误码参考如下:

错误码 错误原因
stateCode = 0 直播成功
stateCode = 3 直播遇到严重错误。stateCode=1,2,3 这三个基本不会出现
stateCode = 4 创建直播流失败。请确认 userid,username 是否为空
stateCode = 5 获取流信息失败
stateCode = 6 流不存在。请检查:(1) AppID 是否相同,要保证一致; (2) 是否同时开启测试环境或同时在正式环境下
stateCode = 7 媒体服务器连接失败。请确认推流端是否正常推流、正式环境和测试环境是否设置都是同一个、网络是否正常
stateCode = 8 DNS 解析失败
stateCode = 9 未 loginRoom 就直接 play/publish
stateCode = 10 逻辑服务器网络错误(网络断开约 3 分钟时会返回该错误)

2.5 退出房间

调用如下 API 退出房间。无论是手动/自动发布直播模式,退出房间后,会停止所有的拉流,无需用户手动停止拉流

/**
 * 退出房间。
 * 退出房间成功会停止所有的推拉流
 * 
 * @return true:成功,false:失败
 */
public boolean logoutRoom();
本篇目录