Public 成员函数 | |
---|---|
void | setRtcChannelEventHandler (IRtcChannelEventHandler eventHandler) |
IRtcChannelEventHandler | getEventHandler () |
abstract int | destroy () |
abstract String | channelId () |
abstract String | getCallId () |
abstract int | getConnectionState () |
abstract int | joinChannel (String token, String optionalInfo, String optionalUid, ChannelMediaOptions options) |
abstract int | leaveChannel () |
abstract int | publish () |
abstract int | unpublish () |
abstract int | renewToken (String token) |
abstract int | setClientRole (int role) |
abstract int | setRemoteRenderMode (String uid, int renderMode, int mirrorMode) |
abstract int | setDefaultMuteAllRemoteAudioStreams (boolean muted) |
abstract int | setDefaultMuteAllRemoteVideoStreams (boolean muted) |
abstract int | muteAllRemoteAudioStreams (boolean muted) |
abstract int | adjustUserPlaybackSignalVolume (String uid, int volume) |
abstract int | muteRemoteAudioStream (String uid, boolean muted) |
abstract int | muteAllRemoteVideoStreams (boolean muted) |
abstract int | muteRemoteVideoStream (String uid, boolean muted) |
abstract int | setRemoteVideoStreamType (String uid, int streamType) |
abstract int | setRemoteDefaultVideoStreamType (int streamType) |
详细描述
RtcChannel 类。
成员函数说明
setRtcChannelEventHandler()
abstract void setRtcChannelEventHandler(IRtcChannelEventHandler eventHandler)
设置频道事件句柄。
设置后,你可以通过 IRtcChannelEventHandler 回调监听对应频道内的事件、获取频道数据。
参数 | 说明 |
---|---|
eventHandler | RtcChannel对象的事件回调:IRtcChannelEventHandler |
getEventHandler()
abstract IRtcChannelEventHandler getEventHandler()
获取频道事件句柄。
返回
- 方法调用成功,则返回 IRtcChannelEventHandler对象。
- 方法调用失败,则返回 null。
destroy()
abstract int destroy()
销毁当前的 RtcChannel 对象。
返回
- 0:方法调用成功。
- < 0:方法调用失败;
- ERR_NOT_INITIALIZED(-7):调用该方法前尚未初始化 RtcChannel对象。
channelId()
abstract String channelId()
获取当前 RtcChannel对象的 channel ID。
返回
- 方法调用成功,则返回当前 RtcChannel对象的 channel ID。
- 方法调用失败,则返回空字符串 ""。
getCallId()
abstract String getCallId()
获取当前的通话 ID.
返回
- 方法调用成功,则返回当前的通话 ID。
- 方法调用失败,则返回空字符串 ""。
getConnectionState()
abstract int getConnectionState()
获取网络连接状态。
- 当前的网络连接状态:
- CONNECTION_STATE_DISCONNECTED(1):网络连接断开
- CONNECTION_STATE_CONNECTING(2):建立网络连接中
- CONNECTION_STATE_CONNECTED(3):网络已连接
- CONNECTION_STATE_RECONNECTING(4):重新建立网络连接中
- CONNECTION_STATE_FAILED(5):网络连接失败
joinChannel()
abstract int joinChannel(String token,String optionalInfo,String optionalUid,ChannelMediaOptions options)
使用 uid 加入频道。
该方法与 RtcEngine 类下的 joinChannel 方法有以下区别:
RtcChannel::joinChannel | RtcEngine::joinChannel |
---|---|
无 channelId 参数。因为创建 RtcChannel 对象时已指定了 channelId。 | 需要填入可以标识频道的 channelId。 |
加了 options 参数,可在加入频道前通过该参数设置是否订阅该频道的音视频流。 | 无 options 参数。加入频道即默认订阅频道内的音视频流。 |
通过创建多个 RtcChannel 对象,并调用相应对象的 joinChannel 方法,实现同时加入多个频道。 | 只允许加入一个频道。 |
通过该方法加入频道后,SDK 默认不发布本地音视频流到本频道,用户需要调用 publish 方法进行发布。 | 通过该方法加入频道后,SDK 默认发布音视频流发布到本频道。 |
注解
- 该方法不支持相同的用户重复加入同一个频道。
- 我们建议不同频道中使用不同的 UID。
- 如果想要从不同的设备同时接入同一个频道,请确保每个设备上使用的 UID 是不同的。
- 请确保用于生成 Token 的 App ID 和创建 RtcEngine 对象时用的 App ID 一致。
参数 | 描述 |
---|---|
token | 在 App 服务器端生成的用于鉴权的 Token: 安全要求不高:你可以使用控制台生成的临时 Token,详见获取临时 Token 安全要求高:将值设为你的服务端生成的正式 Token,详见从服务端生成 Token |
optionalInfo | (非必选项)开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户 |
optionalUid | (非必选项)用户 ID,32 位字符串,保证唯一性。如果不指定(即设为空字符串),SDK 会自动分配一个,并在 onJoinChannelSuccess 回调方法中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。 |
options | 频道媒体设置选项:ChannelMediaOptions。 |
返回
- 0:方法调用成功。
- < 0:方法调用失败。
leaveChannel()
abstract int leaveChannel()
abstract int org.ar.rtc.RtcChannel.leaveChannel() | abstract |
---|---|
离开当前频道。
成功调用该方法离开频道后,会触发如下回调:
- 本地:onLeaveChannel.
- 远端:通信场景下的用户和直播场景下的主播离开频道后,触发 onUserOffline。
返回
- 0:方法调用成功。
- < 0:方法调用失败。
publish()
abstract int publish()
将本地音视频流发布到本频道。
该方法的调用需满足以下要求,否则 SDK 会返回 ERR_REFUSED(-5):
- 该方法仅支持将音视频流发布到当前 RtcChannel 类所对应的频道。
- 直播场景下,该方法仅适用于角色为主播的用户。你可以调用该 RtcChannel类下的 setClientRole 方法设置用户角色。
- SDK 只支持用户同一时间在一个频道发布一路音视频流。详情请参考高阶指南多频道管理
返回
- 0:方法调用成功。
- < 0:方法调用失败。ERR_REFUSED(-5):调用被拒绝。
unpublish()
abstract int unpublish()
停止将本地音视频流发布到本频道。
请确保你想要 unpublish 音视频流的频道 channelId,与当前正在 publish 音视频流的频道 channel ID 一致,否则 SDK 会返回 ERR_REFUSED(-5)。
返回
- 0:方法调用成功。
- < 0:方法调用失败。ERR_REFUSED(-5):调用被拒绝。
renewToken()
abstract int org.ar.rtc.RtcChannel.renewToken(String token) | abstract |
---|---|
更新 Token。
该方法用于更新 Token。如果启用了 Token 机制,过一段时间后使用的 Token 会失效。当:
- 发生 onTokenPrivilegeWillExpire 回调时,或发生
- onConnectionStateChanged 回调报告 CONNECTION_CHANGED_TOKEN_EXPIRED(9) 时,
App 应重新获取 Token,然后调用该 API 更新 Token,否则 SDK 无法和服务器建立连接。
参数 | 描述 |
---|---|
token | 新的 Token |
返回
- 0:方法调用成功
- < 0:方法调用失败
setClientRole()
abstract int setClientRole(int role)
设置直播场景下的用户角色。
该方法设置用户角色为观众或主播。 直播频道中,只有角色为主播的用户才能调用 RtcChannel 类下的 publish 方法.
成功调用该方法切换用户角色后,SDK 会触发以下回调:
- 本地:onClientRoleChanged。
- 远端: onUserJoined 或 onUserOffline(USER_OFFLINE_BECOME_AUDIENCE).
参数 | 描述 |
---|---|
role | 用户角色: CLIENT_ROLE_BROADCASTER(1):直播频道中的主播,可以发布和接收音视频流。 CLIENT_ROLE_AUDIENCE(2):直播频道中的观众,只可以接收音视频流。 |
返回
- 0:方法调用成功。
- < 0:方法调用失败。
setRemoteRenderMode()
abstract int setRemoteRenderMode(String uid,int renderMode,int mirrorMode )
更新远端视图显示模式。
初始化远端用户视图后,你可以调用该方法更新远端用户在本地显示时的渲染和镜像模式。该方法只影响本地用户看到的视频画
注解
- 请在调用 setupRemoteVideo 方法初始化远端视图后,调用该方法。
- 你可以在通话中多次调用该方法,多次更新远端用户视图的显示模式。
参数 | 描述 |
---|---|
uid | 远端用户的 ID |
renderMode | 远端用户视图的渲染模式。 RENDER_MODE_HIDDEN(1): 优先保证视窗被填满。视频尺寸等比缩放,直至整个视窗被视频填满。如果视频长宽与显示窗口不同,多出的视频将被截掉。 RENDER_MODE_FIT(2): 优先保证视频内容全部显示。视频尺寸等比缩放,直至视频窗口的一边与视窗边框对齐。如果视频长宽与显示窗口不同,视窗上未被填满的区域将被涂黑。 RENDER_MODE_ADAPTIVE(3): 已废弃,不再推荐使用。 RENDER_MODE_FILL(4): 视频尺寸进行缩放和拉伸以充满显示视窗。 |
mirrorMode | 远端用户视图的镜像模式。 VIDEO_MIRROR_AUTO(0): 默认的镜像模式(SDK 决定镜像模式)。SDK 默认关闭远端用户视图的镜像模式。 VIDEO_MIRROR_MODE_ENABLED(1): 开启镜像模式。 VIDEO_MIRROR_MODE_DISABLED(2): 关闭镜像模式。 |
返回
- 0:方法调用成功。
- < 0:方法调用失败。
setDefaultMuteAllRemoteAudioStreams()
abstract int setDefaultMuteAllRemoteAudioStreams(boolean muted)
设置是否默认接收音频流。
参数 | 描述 |
---|---|
muted | 是否默认不接收所有远端音频: true:默认不接收所有远端音频流 false:默认接收所有远端音频流(默认) |
返回
- 0:方法调用成功
- < 0:方法调用失败
setDefaultMuteAllRemoteVideoStreams()
abstract int setDefaultMuteAllRemoteVideoStreams(boolean muted)
设置是否默认接收视频流。
参数 | 描述 |
---|---|
muted | 是否默认不接收所有远端视频流: true:默认不接收所有远端视频流 false:默认继续接收所有远端视频流(默认) |
返回
- 0:方法调用成功
- < 0:方法调用失败
muteAllRemoteAudioStreams()
abstract int muteAllRemoteAudioStreams(boolean muted)
停止/恢复接收所有音频流。
参数 | 描述 |
---|---|
mute | true:停止接收所有远端音频流 false:继续接收所有远端音频流(默认) |
adjustUserPlaybackSignalVolume()
abstract int adjustUserPlaybackSignalVolume(String uid,String volume )
调节本地播放的指定远端用户音量。
你可以在通话中调用该方法调节指定远端用户在本地播放的音量。如需调节多个用户在本地播放的音量,则需多次调用该方法。
注解
- 该方法要在加入频道后调用。
- 该方法调节的是本地播放的指定远端用户混音后的音量。
- 该方法每次只能调整一位远端用户在本地播放的音量。若需调整多位远端用户在本地播放的音量,则需多次调用该方法。
参数 | 描述 |
---|---|
uid | 远端用户的 ID |
volume | 播放音量,取值范围为 [0,100]。0:静音。100:原始音量。 |
返回
- 0:方法调用成功。
- < 0:方法调用失败。
muteRemoteAudioStream()
abstract int muteRemoteAudioStream(String uid,boolean muted )
停止/恢复接收指定音频流。
参数 | 描述 |
---|---|
uid | 指定的用户 ID |
mute | true:停止接收指定用户的音频流 false:继续接收指定用户的音频流(默认) 注解 |
返回
- 0:方法调用成功
- < 0:方法调用失败
muteAllRemoteVideoStreams()
abstract int muteAllRemoteVideoStreams(boolean muted)
停止/恢复接收所有视频流。
参数 | 描述 |
---|---|
muted | true:停止接收所有远端视频流 false:继续接收所有远端视频流(默认) |
返回
- 0:方法调用成功
- < 0:方法调用失败
muteRemoteVideoStream()
abstract int muteRemoteVideoStream(String uid,boolean muted )
停止/恢复接收指定视频流。
参数 | 描述 |
---|---|
uid | 指定的用户 ID |
mute | true:停止接收指定用户的视频流 false:(默认)继续接收指定用户的视频流 |
返回
- 0:方法调用成功
- < 0:方法调用失败
setRemoteVideoStreamType()
abstract int setRemoteVideoStreamType(String uid,int streamType )
设置订阅的视频流类型。
在网络条件受限的情况下,如果发送端没有调用 enableDualStreamMode(false) 关闭双流模式,接收端可以选择接收大流还是小流。其中,大流可以接为高分辨率高码率的视频流, 小流则是低分辨率低码率的视频流。
正常情况下,用户默认接收大流。如需节约带宽和计算资源,则可以调用该方法动态调整对应远端视频流的大小。 SDK 会根据该方法中的设置,切换大小流。
视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
参数 | 描述 |
---|---|
uid | 用户 ID |
streamType | 设置视频流大小。视频流类型如下: High video stream(0):视频大流,即高分辨率、高码率视频流 Low video stream(1):视频小流,即低分辨率、低码率视频流 |
返回
- 0:方法调用成功
- < 0:方法调用失败
setRemoteDefaultVideoStreamType()
abstract int setRemoteDefaultVideoStreamType(int streamType)
设置默认订阅的视频流类型。
参数 | 描述 |
---|---|
streamType | 设置视频流大小。视频流类型如下: High video stream(0):视频大流,即高分辨率、高码率视频流 [Low video stream(1):视频小流,即低分辨率、低码率视频流 |
返回
- 0:方法调用成功
- < 0:方法调用失败