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

自动发布直播

更新时间:2022-05-30 10:47

1 简介

登录房间成功后,有两种发布直播的方式:

  1. 手动发布直播。登录成功后,SDK 不会自动开始推流,需要用户手动触发。
  2. 自动发布直播。登录成功后,SDK 会自动开始推流,用户无需手动触发。

本文主要讲述自动发布直播的实现过程。

2 步骤

2.1 初始化 SDK

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

2.2 设置发布代理对象

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

/**
 * 设置 ZegoAudioLivePublisher 代理对象。
 * 推流前务必要设置代理对象, 否则会收不到相关回调
 *
 * @param publisherDelegate 实现 ZegoAudioLivePublisherDelegate 接口的对象实例
 */
 public void setAudioPublisherDelegate(ZegoAudioLivePublisherDelegate publisherDelegate);

2.3 登录房间

调用如下 API 登录房间

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

登录失败请查看 登录房间错误码

2.4 处理发布状态回调

手动发布开始后,开发者可在如下通知中处理发布状态和信息

/**
 * 推流状态更新。
 * 注意调用 #setAudioPublisherDelegate(ZegoAudioLivePublisherDelegate) 设置代理对象成功后,客户端才能收到此通知
 *
 * @param stateCode 状态码,0 表示推流成功
 * @param streamID 流 ID
 * @param info 流信息
 */
public void onPublishStateUpdate(int stateCode, String streamID, HashMap<String, Object> streamInfo);

推流失败请查看 推流错误码

2.5 退出房间

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

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

3 API 调用时序图

自动推流的 API 调用时序图如下所示:

本篇目录