List<RCRTCOutputStream> getStreams()
不含自定义视频流
boolean containsStream(RCRTCOutputStream stream)
stream
- 要判断的流void publishDefaultStreams(IRCRTCResultCallback callback)
callback
- 发布资源结果回调void publishDefaultLiveStreams(IRCRTCResultDataCallback<RCRTCLiveInfo> callBack)
callBack
- 发布资源结果回调void unpublishDefaultStreams(IRCRTCResultCallback callback)
callback
- 发布结果void unpublishDefaultLiveStreams(IRCRTCResultCallback callback)
callback
- void publishStreams(List<? extends RCRTCOutputStream> streams, IRCRTCResultCallback callBack)
streams
- 音视频流集合callBack
- 发布回调void unpublishStreams(List<RCRTCOutputStream> streams, IRCRTCResultCallback callBack)
streams
- 音视频流集合callBack
- 取消发布回调void publishStream(RCRTCOutputStream stream, IRCRTCResultCallback callBack)
stream
- 音视频流callBack
- 发布回调void unpublishStream(RCRTCOutputStream stream, IRCRTCResultCallback callBack)
stream
- 音视频流callBack
- 取消发布回调void publishLiveStream(RCRTCOutputStream stream, IRCRTCResultDataCallback<RCRTCLiveInfo> callBack)
stream
- 音视频流callBack
- 发布回调void unpublishLiveStream(RCRTCOutputStream stream, IRCRTCResultCallback callback)
stream
- callback
- void subscribeStreams(List<? extends RCRTCInputStream> streams, IRCRTCResultCallback callBack)
streams
- 音视频流集合callBack
- 订阅回调void subscribeStream(RCRTCInputStream stream, IRCRTCResultCallback callBack)
stream
- 音视频流callBack
- 订阅回调void unsubscribeStreams(List<? extends RCRTCInputStream> streams, IRCRTCResultCallback callBack)
streams
- 音视频流集合callBack
- 取消订阅回调void unsubscribeStream(RCRTCInputStream stream, IRCRTCResultCallback callBack)
stream
- 音视频流callBack
- 取消订阅回调void setAttributeValue(String key, String value, MessageContent message, IRCRTCResultCallback callback)
value
- 属性值key
- 属性名称message
- 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息callback
- 设置完成回调void deleteAttributes(List<String> attributeKeys, MessageContent message, IRCRTCResultCallback callback)
attributeKeys
- 属性名称数组message
- 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息callback
- 删除完成回调void getAttributes(List<String> attributeKeys, IRCRTCResultDataCallback<Map<String,String>> callback)
attributeKeys
- 属性名称callback
- 获取结果回调IRCRTCResultDataCallback
RCRTCCameraOutputStream getDefaultVideoStream()
RCRTCMicOutputStream getDefaultAudioStream()
void requestJoinOtherRoom(String inviteeRoomId, String inviteeUserId, boolean inviterAutoMix, String extra, IRCRTCResultCallback callback)
inviteeRoomId
- 被邀请者所在房间 idinviteeUserId
- 被邀请用户 idinviterAutoMix
- 是否将邀请者音视频资源发送到被邀请人房间中合流
1: inviterAutoMix为true时:
1.1:如果被邀请方在加入邀请方房间之前发布了资源,当被邀请方加入邀请者房间成功后,服务器会把被邀请方流资源合并到邀请方视图 ·(默认仅悬浮布局合流)上。
1.2:如果被邀请方在加入邀请方房间之前没有发布过资源,将会在被邀请方发布资源成功后,服务器会把被邀请方流资源合并到邀请方视图(默认仅悬浮布局合流)上。
2:无论为true或false,双方都可以使用RCRTCLiveInfo.setMixConfig(RCRTCMixConfig, IRCRTCResultCallback)
方法主动设置合流布局。一旦主动设置过合流布局,后续音视频直播过程中设置的自动合流参数将失效。
extra
- 扩展字段,默认为空callback
- 发送回调void cancelRequestJoinOtherRoom(String inviteeRoomId, String inviteeUserId, String extra, IRCRTCResultCallback callback)
inviteeRoomId
- 被邀请者所在房间 idinviteeUserId
- 被邀请者用户 idextra
- 扩展字段,默认为空callback
- 发送回调void responseJoinOtherRoom(String inviterRoomId, String inviterUserId, boolean agree, boolean inviteeAutoMix, String extra, IRCRTCResultCallback callback)
inviterRoomId
- 邀请者所在房间 id,inviterUserId
- 邀请者用户 idagree
- 被邀请者是否同意连麦邀请inviteeAutoMix
- 是否将被邀请者音视频资源发送到邀请人房间中合流
1:inviteeAutoMix 为true时:
1.1:如果邀请方在发送连麦请求之前发布了资源,当被邀请方加入邀请者房间成功后,服务器会把邀请方流资源合并到被邀请方视图(默认仅悬浮布局合流)上。
1.2:如果邀请方在发送连麦请求之前没有发布资源,将会在邀请方发布资源成功后,服务器才会把邀请方的资源合并到被邀请方视图(默认仅悬浮布局合流)上。
2: 无论为true或false,双方都可以使用RCRTCLiveInfo.setMixConfig(RCRTCMixConfig, IRCRTCResultCallback)
方法主动设置合流布局。一旦主动设置过合流布局,后续音视频直播过程中设置的自动合流参数将失效。
extra
- 扩展字段,默认为空callback
- 发送回调void subscribeLiveUrl(String liveUrl, RCRTCAVStreamType avStreamType, RCRTCLiveCallback callBack)
1. 如果可以通过RCRTCRoom.getLiveStreams()
方法拿到直播流,推荐使用subscribeStreams(List, IRCRTCResultCallback)
方法来订阅直播
2. 取消订阅直播: 通过RCRTCRoom.getLiveStreams()
方法拿到所有的直播流,并将指定要取消的 Stream 对象传给unsubscribeStreams(List, IRCRTCResultCallback)
方法即可完成取消订阅操作
liveUrl
- 直播地址avStreamType
- 订阅流类型callBack
- 订阅结果回调void switchToAudience(IRCRTCSwitchRoleCallback callBack)
IRCRTCRoomEventsListener.onSwitchRole(String, RCRTCLiveRole)
回调。房间中其他观众会收到IRCRTCRoomEventsListener.onUserLeft(RCRTCRemoteUser)
1. 如果当前用户加入了 RCRTCOtherRoom,切换为观众时。RTC SDK 内部会帮其退出所有 RCRTCOtherRoom。不会结束本次连麦。
2. 当切换失败且不影响当前角色继续音视频时,会回调IRCRTCFailedCallback.onFailed(RTCErrorCode)
3. 当切换失败且SDK处于无法回退状态时,会回调IRCRTCKickedCallback.onKicked()
。SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。
4. 角色切换之后会保留注册的RCRTCEngine.registerEventListener(cn.rongcloud.rtc.api.callback.IRCRTCEngineEventListener)
、RCRTCEngine.registerStatusReportListener(cn.rongcloud.rtc.api.callback.IRCRTCStatusReportListener)
和RCRTCRoom.registerRoomListener(cn.rongcloud.rtc.api.callback.IRCRTCRoomEventsListener)
等 RTC SDK 全局类型的监听。其他监听需要切换角色成功后重新注册才能使用。
callBack
- void switchToBroadcaster(List<? extends RCRTCOutputStream> publishStreams, IRCRTCSwitchRoleDataCallback<RCRTCLiveInfo> callBack)
IRCRTCRoomEventsListener.onSwitchRole(String, RCRTCLiveRole)
回调。房间中其他观众会收到IRCRTCRoomEventsListener.onUserJoined(RCRTCRemoteUser)
1. 当切换失败且不影响当前角色继续音视频时,会回调IRCRTCFailedCallback.onFailed(RTCErrorCode)
2. 当切换失败且SDK处于无法回退状态时,会回调IRCRTCKickedCallback.onKicked()
。SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。
3. 角色切换之后会保留注册的RCRTCEngine.registerEventListener(cn.rongcloud.rtc.api.callback.IRCRTCEngineEventListener)
、RCRTCEngine.registerStatusReportListener(cn.rongcloud.rtc.api.callback.IRCRTCStatusReportListener)
和RCRTCRoom.registerRoomListener(cn.rongcloud.rtc.api.callback.IRCRTCRoomEventsListener)
等 RTC SDK 全局类型的监听。其他监听需要切换角色成功后重新注册才能使用。
publishStreams
- 切换为主播成功后,需要发布的资源;默认为:nullcallBack
-