提交工单
咨询集成、功能及报价等问题
登录房间成功后,有两种发布直播的方式:
本文主要讲述手动发布直播的实现过程。
参考文档:快速开始-初始化
调用如下 API 设置手动发布直播
/**
* 设置登录房间成功后,是否手动发布直播。
*
* @param manual true:手动发布直播,false:自动发布直播,默认为自动发布直播
*/
public void setManualPublish(boolean manual);
调用如下 API 设置 ZegoAudioLivePublisherDelegate 代理对象。设置代理对象失败,会导致 App 收不到相关回调
/**
* 设置 ZegoAudioLivePublisher 代理对象。
* 推流前务必要设置代理对象, 否则会收不到相关回调
*
* @param publisherDelegate 实现 ZegoAudioLivePublisherDelegate 接口的对象实例
*/
public void setAudioPublisherDelegate(ZegoAudioLivePublisherDelegate publisherDelegate);
调用如下 API 登录房间
/**
* 登录房间。
*
* @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 | 超出房间能容纳的最大连接数 |
调用如下 API 发布直播,该方法只有在 ZegoAudioRoom#setManualPublish(true) 时调用才有效。手动发布直播模式下,用户需要手动发布直播。
/**
* 开始直播。
* 该方法只有在 #setManualPublish(boolean) 为 true 时调用才有效
*
* @return true:调用成功; false:调用失败(失败原因:当前直播流已达上限、已经开播等)
*/
public boolean startPublish();
手动发布开始后,开发者可在如下通知中处理发布状态和信息
/**
* 推流状态更新。
* 注意调用 #setAudioPublisherDelegate(ZegoAudioLivePublisherDelegate) 设置代理对象成功后,客户端才能收到此通知
*
* @param stateCode 状态码,0 表示推流成功
* @param streamID 流 ID
* @param info 流信息
*/
public void onPublishStateUpdate(int stateCode, String streamID, HashMap<String, Object> streamInfo);
常见发布错误码参考如下:
错误码 | 错误原因 |
---|---|
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 分钟时会返回该错误) |
调用如下 API 停止直播,该方法只有在 ZegoAudioRoom#setManualPublish(true) 时调用才有效。
手动发布直播模式下,用户需要手动发布直播。停止直播后不会直接退出房间,用户依然可以在此房间中再次发布直播。
/**
* 停止直播。
* 该方法只有在 ZegoAudioRoomApi#setManualPublish(boolean) 为 true 时调用才有效
*/
public void stopPublish();
调用如下 API 退出房间。退出房间成功会停止所有的推流
/**
* 退出房间。
* 退出房间成功会停止所有的推拉流
*
* @return true:成功,false:失败
*/
public boolean logoutRoom();
手动推流的 API 调用时序图如下所示:
联系我们
文档反馈