Public 成员函数 | |
void | setRtcChannelEventHandler (IRtcChannelEventHandler eventHandler) |
IRtcChannelEventHandler | getEventHandler () |
abstract int | destroy () |
abstract String | channelId () |
abstract String | getCallId () |
abstract int | getConnectionState () |
abstract int | enableRemoteSuperResolution (int uid, boolean enable) |
abstract int | enableRemoteSuperResolution (boolean enable, int mode, int uid) |
abstract int | joinChannel (String token, String optionalInfo, int optionalUid, ChannelMediaOptions options) |
abstract int | joinChannelWithUserAccount (String token, String userAccount, ChannelMediaOptions options) |
abstract int | leaveChannel () |
abstract int | setAVSyncSource (String channelName, int uid) |
abstract int | muteLocalAudioStream (boolean muted) |
abstract int | muteLocalVideoStream (boolean muted) |
abstract int | publish () |
abstract int | unpublish () |
abstract int | renewToken (String token) |
abstract int | setEncryptionSecret (String secret) |
abstract int | setEncryptionMode (String encryptionMode) |
abstract int | enableEncryption (boolean enabled, EncryptionConfig config) |
abstract int | registerMediaMetadataObserver (IMetadataObserver observer, int type) |
abstract int | setClientRole (int role) |
abstract int | setClientRole (int role, ClientRoleOptions options) |
abstract int | setRemoteUserPriority (int uid, int userPriority) |
abstract int | setRemoteVoicePosition (int uid, double pan, double gain) |
abstract int | setRemoteRenderMode (int uid, int renderMode, int mirrorMode) |
abstract int | setDefaultMuteAllRemoteAudioStreams (boolean muted) |
abstract int | setDefaultMuteAllRemoteVideoStreams (boolean muted) |
abstract int | muteAllRemoteAudioStreams (boolean muted) |
abstract int | adjustUserPlaybackSignalVolume (int uid, int volume) |
abstract int | muteRemoteAudioStream (int uid, boolean muted) |
abstract int | muteAllRemoteVideoStreams (boolean muted) |
abstract int | muteRemoteVideoStream (int uid, boolean muted) |
abstract int | setRemoteVideoStreamType (int uid, int streamType) |
abstract int | setRemoteDefaultVideoStreamType (int streamType) |
abstract int | createDataStream (boolean reliable, boolean ordered) |
abstract int | createDataStream (DataStreamConfig config) |
abstract int | sendStreamMessage (int streamId, byte[] message) |
abstract int | addPublishStreamUrl (String url, boolean transcodingEnabled) |
abstract int | removePublishStreamUrl (String url) |
abstract int | setLiveTranscoding (LiveTranscoding transcoding) |
abstract int | startChannelMediaRelay (ChannelMediaRelayConfiguration channelMediaRelayConfiguration) |
abstract int | stopChannelMediaRelay () |
abstract int | updateChannelMediaRelay (ChannelMediaRelayConfiguration channelMediaRelayConfiguration) |
abstract int | pauseAllChannelMediaRelay () |
abstract int | resumeAllChannelMediaRelay () |
abstract int | setRemoteVideoRenderer (int uid, IVideoSink render) |
RtcChannel 类。
void io.agora.rtc.RtcChannel.setRtcChannelEventHandler | ( | IRtcChannelEventHandler | eventHandler | ) |
设置频道事件句柄。
设置后,你可以通过 IRtcChannelEventHandler 回调监听对应频道内的事件、获取频道数据。
eventHandler | RtcChannel 对象的事件回调:IRtcChannelEventHandler. |
IRtcChannelEventHandler io.agora.rtc.RtcChannel.getEventHandler | ( | ) |
获取频道事件句柄。
|
abstract |
销毁当前的 RtcChannel 对象。
|
abstract |
获取当前 RtcChannel 对象的 channel ID。
|
abstract |
获取当前的通话 ID. 该方法需要在加入频道后调用。
|
abstract |
获取网络连接状态。
CONNECTION_STATE_DISCONNECTED(1)
:网络连接断开。CONNECTION_STATE_CONNECTING(2)
:建立网络连接中。CONNECTION_STATE_CONNECTED(3)
:网络已连接。CONNECTION_STATE_RECONNECTING(4)
:重新建立网络连接中。CONNECTION_STATE_FAILED(5)
:网络连接失败。
|
abstract |
开启/关闭远端视频超分辨率。(beta 功能)
enableRemoteSuperResolution
[2/2] 方法。该功能可以有效地提升本地用户看到的远端视频画面的分辨率。远端用户视频的原始分辨率为 a × b,开启该功能后,本地设备会以 2a × 2b 的分辨率显示该远端视频。
调用该方法后,SDK 会触发 onUserSuperResolutionEnabled
回调报告超分辨率是否成功开启。
libagora_super_resolution_extension.so
动态库集成到项目中。uid | 远端用户 ID。 |
enable | 是否对远端视频开启超分辨率:
|
ERR_MODULE_NOT_FOUND
):未集成超分辨率动态库。
|
abstract |
开启/关闭远端视频超分辨率。(beta 功能)
该功能可以有效地提升用户看到的远端视频画面的分辨率,即对接收到的某个远端用户的视频宽和高均扩大为 2 倍像素。
调用该方法后,SDK 会触发 onUserSuperResolutionEnabled
回调报告超分辨率是否成功开启。
libagora_super_resolution_extension.so
动态库集成到项目中。enable | 是否对远端视频开启超级分辨率:
|
mode | 超分辨率的模式:
|
uid | 远端用户 ID。该参数仅在 mode 为 SR_MODE_MANUAL(0) 时生效。 |
ERR_MODULE_NOT_FOUND
): 尚未集成超分辨率动态库。
|
abstract |
使用 uid 加入频道。
相比于 RtcEngine
类下的 joinChannel
方法,该方法支持通过创建多个 RtcChannel
对象,并调用相应对象的 joinChannel
方法,实现同时加入多个频道。
用户成功加入频道后,默认发布本地音视频流并自动订阅频道内所有其他用户的音视频流。订阅音视频流会产生用量并影响计费。 如果想取消订阅,可以通过设置 options
参数或相应的 mute
方法实现。
token | 在 app 服务端生成的用于鉴权的 Token。详见使用 Token 鉴权。 |
optionalInfo | 开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户。 |
optionalUid | 用户 ID,32 位无符号整数。建议设置范围:1 到 (232-1),并保证唯一性。如果不指定(即设为 0),SDK 会自动分配一个, 并在 onJoinChannelSuccess 回调方法中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。 |
options | 频道媒体设置选项:ChannelMediaOptions 。 |
ERR_INVALID_ARGUMENT(-2)
ERR_NOT_READY(-3)
ERR_REFUSED(-5)
ERR_NOT_INITIALIZED(-7)
ERR_JOIN_CHANNEL_REJECTED(-17)
:加入频道被拒绝。由于 SDK 不支持用户重复加入同一个 RtcChannel
频道, 当已经加入某个 RtcChannel
频道的用户再次调用该 RtcChannel
对象的加入频道方法时,会返回此错误码。
|
abstract |
使用 user account 加入频道.
相比于 RtcEngine
类下的 joinChannelWithUserAccount
[2/2] 方法, 该方法支持通过创建多个 RtcChannel
对象,并调用相应对象的 joinChannelWithUserAccount
方法,实现同时加入多个频道。
用户成功加入频道后,默认发布本地音视频流并自动订阅频道内所有其他用户的音视频流。 订阅音视频流会产生用量并影响计费。如果想取消订阅,可以通过设置 options
参数或相应的 mute
方法实现。
token | 在 app 服务端生成的用于鉴权的 Token。详见使用 Token 鉴权。 |
userAccount | 用户 User Account。该参数为必需,最大不超过 255 字节,不可为 null。请确保加入频道的 User Account 的唯一性。 以下为支持的字符集范围(共 89 个字符):
|
options | 频道媒体设置选项:ChannelMediaOptions 。 |
ERR_INVALID_ARGUMENT(-2)
ERR_NOT_READY(-3)
ERR_REFUSED(-5)
ERR_JOIN_CHANNEL_REJECTED(-17)
:加入频道被拒绝。由于 SDK 不支持用户重复加入同一个 RtcChannel
频道, 当已经加入某个 RtcChannel
频道的用户再次调用该 RtcChannel
对象的加入频道方法时,会返回此错误码。
|
abstract |
离开当前频道。
成功调用该方法离开频道后,会触发如下回调:
onLeaveChannel
.onUserOffline
。
|
abstract |
设置发流端音画同步。
同一用户可能使用两个设备分别发送音频流和视频流,为保证接收端听到和看到的音频和视频的时间同步性, 你可以在视频发送端调用该方法,并传入音频发送端的频道名、用户 ID。SDK 会以发送的音频流的时间戳为基准进行自动调节 发送的视频流,以保证即使在两个发送端的上行网络情况不一致(如分别使用 Wi-Fi 和 4G 网络)的情况下, 也能让接收到的音视频具有时间同步性。
channelName | 标识音频发送端所在频道的频道名。 |
uid | 音频发送端的用户 ID。 |
|
abstract |
取消或恢复发布本地音频流。
该方法仅设置用户在 RtcChannel
频道中的音频发布状态。
成功调用该方法后,远端会触发 onRemoteAudioStateChanged
回调。
同一时间,本地的音视频流只能发布到一个频道。如果你创建了多个频道,请确保你只在一个频道中调用 muteLocalAudioStream(false)
,否则方法会调用失败并返回 -5 (ERR_REFUSED)
。
joinChannel
和 setClientRole
方法的影响,详见《设置发布状态》。muted | 是否取消发布本地音频流:
|
-5 (ERR_REFUSED)
:调用被拒绝。
|
abstract |
取消或恢复发布本地视频流。
该方法仅设置用户在 RtcChannel
频道中的视频发布状态。
成功调用该方法后,远端会触发 onRemoteVideoStateChanged
回调。
同一时间,本地的音视频流只能发布到一个频道。如果你创建了多个频道,请确保你只在一个频道中调用 muteLocalVideoStream(false)
,否则方法会调用失败并返回 -5 (ERR_REFUSED)
。
joinChannel
和 setClientRole
方法的影响,详见《设置发布状态》。muted | 是否取消发布本地视频流。
|
-5 (ERR_REFUSED)
:调用被拒绝。
|
abstract |
将本地音视频流发布到本频道。
muteLocalAudioStream(false)
或 muteLocalVideoStream(false)
。该方法的调用需满足以下要求,否则 SDK 会返回 ERR_REFUSED(-5):
setClientRole
方法设置用户角色。
|
abstract |
停止将本地音视频流发布到本频道。
muteLocalAudioStream(true)
或 muteLocalVideoStream(true)
。请确保你想要 unpublish 音视频流的频道 channelId,与当前正在 publish 音视频流的频道 channel ID 一致,否则 SDK 会返回 ERR_REFUSED(-5)。
|
abstract |
更新 Token。
在如下情况下,SDK 判定当前的 Token 已过期:
onTokenPrivilegeWillExpire
回调,或者onConnectionStateChanged
回调中报告 CONNECTION_CHANGED_TOKEN_EXPIRED(9) 错误,你应该在服务端重新获取 token,然后调用该方法更新 Token,否则 SDK 无法和服务器建立连接。
token | 新的 Token。 |
|
abstract |
启用内置加密,并设置数据加密密码。
enableEncryption
。如果需要启用加密,请在加入频道前调用该方法启用内置加密功能,并设置加密密码。
同一频道内的所有用户应设置相同的密码。 当用户离开频道时,该频道的密码会自动清除。如果未指定密码或将密码设置为空,则无法激活加密功能。
secret | 加密密码。 |
|
abstract |
设置内置的加密方案。
enableEncryption
。SDK 支持内置加密功能,默认使用 AES-128-XTS 加密方式。如需使用其他加密方式,可以调用该 API 设置。 同一频道内的所有用户必须设置相同的加密方式和密码才能进行通话。关于这几种加密方式的区别,请参考 AES 加密算法的相关资料。
setEncryptionSecret
之后调用。encryptionMode | 加密方式:
|
|
abstract |
开启或关闭内置加密。
在安全要求较高的场景下,声网建议你在加入频道前,调用 enableEncryption
方法开启内置加密。
用户离开频道后,SDK 会自动关闭加密。如需重新开启加密,你需要在用户再次加入频道前调用该方法。
自 v3.4.5 起,声网推荐使用 AES_128_GCM2
或 AES_256_GCM2
加密模式。这两种模式支持设置盐,安全性更高。设置方法详见《媒体流加密》。
enabled | 是否开启内置加密:
|
config | 配置内置加密方案。详见 EncryptionConfig 。 |
IRtcEngine
对象并完成初始化。
|
abstract |
注册媒体 Metadata 观测器。
你需要在该方法中实现一个 IMetadataObserver 类,并指定 Metadata 的数据类型。成功调用该方法后,SDK 会触发 getMaxMetadataSize
回调。
该接口通过在直播的视频帧中同步添加 Metadata,实现发送商品链接、分发优惠券、发送答题等功能,构建更为丰富的直播互动方式。
joinChannel
加入频道前调用该方法。observer | IMetadataObserver 类。 |
type | Metadata 的数据类型。目前 SDK 仅支持视频类的 Metadata,即 VIDEO_METADATA(0) 。
|
|
abstract |
设置直播场景下的用户角色。
调用 setChannelProfile(CHANNEL_PROFILE_LIVE_BROADCASTING)
后,SDK 会默认设置用户角色为观众,你可以调用 setClientRole
设置用户角色为主播。
该方法在加入频道前后均可调用。如果你在加入频道后调用该方法切换用户角色,调用成功后,SDK 会自动进行如下操作:
muteLocalAudioStream
和 muteLocalVideoStream
修改发布状态。onClientRoleChanged
或 onClientRoleChangeFailed
。onUserJoined
或 onUserOffline
(USER_OFFLINE_BECOME_AUDIENCE)。setChannelProfile
中 profile
设为 CHANNEL_PROFILE_LIVE_BROADCASTING
)。role | 直播场景里的用户角色:
|
ERR_OK
): 方法调用成功。ERR_FAILED
): 一般性的错误(未明确归类)。ERR_INVALID_ARGUMENT
): 参数无效。ERR_REFUSED
): 调用被拒绝。在多频道场景中,如果你已在一个频道中进行如下设置,则用户在另一个频道内切换角色为主播时会返回该错误码:options
参数的 joinChannel
,并使用默认设置 publishLocalAudio = true
或 publishLocalVideo = true
。setClientRole
,并设置用户角色为主播。muteLocalAudioStream(false)
或 muteLocalVideoStream(false)
。ERR_NOT_INITIALIZED
): SDK 尚未初始化。
|
abstract |
设置直播场景下的用户角色。
调用 setChannelProfile(CHANNEL_PROFILE_LIVE_BROADCASTING)
后,SDK 会默认设置用户角色为观众,你可以调用 setClientRole
设置用户角色为主播。
该方法在加入频道前后均可调用。如果你在加入频道后调用该方法切换用户角色,调用成功后,SDK 会自动进行如下操作:
muteLocalAudioStream
和 muteLocalVideoStream
修改发布状态。onClientRoleChanged
或 onClientRoleChangeFailed
。onUserJoined
或 onUserOffline
(USER_OFFLINE_BECOME_AUDIENCE)。setChannelProfile
中 profile
设为 CHANNEL_PROFILE_LIVE_BROADCASTING
)。setClientRole1
的区别在于,该方法还支持设置用户级别。示例代码
role | 直播场景里的用户角色:
|
options | 用户具体设置,包含用户级别,详见 ClientRoleOptions 。 |
ERR_REFUSED
): 调用被拒绝。在多频道场景中,如果你已在一个频道中进行如下设置,则用户在另一个频道内切换角色为主播时会返回该错误码:options
参数的 joinChannel
,并使用默认设置 publishLocalAudio = true
或 publishLocalVideo = true
。setClientRole
,并设置用户角色为主播。muteLocalAudioStream(false)
或 muteLocalVideoStream(false)
。ERR_NOT_INITIALIZED
): SDK 尚未初始化。
|
abstract |
设置用户媒体流优先级。
如果将某个用户的优先级设为高,那么发给这个用户的音视频流的优先级就会高于其他用户。 弱网下 SDK 会优先保证高优先级用户收到的流的质量。
uid | 远端用户的 ID。 |
userPriority | 远端用户的需求优先级:
|
|
abstract |
设置远端用户声音的空间位置和音量,方便本地用户听声辨位。
用户通过调用该接口,设置远端用户声音出现的位置,左右声道的声音差异会让用户产生声音的方位感,从而判断出远端用户的实时位置。 在多人在线游戏场景,如吃鸡游戏中,该方法能有效增加游戏角色的方位感,模拟真实场景。
enableSoundPositionIndication
开启远端用户的语音立体声。uid | 远端用户的 ID。 |
pan | 设置远端用户声音出现的位置,取值范围为 [-1.0, 1.0]:
|
gain | 设置远端用户声音的音量,取值范围为 [0.0, 100.0],默认值为 100.0,表示该用户的原始音量。取值越小,则音量越低。 |
|
abstract |
更新远端视图显示模式。
初始化远端用户视图后,你可以调用该方法更新远端用户视图在本地显示时的渲染和镜像模式。该方法只影响本地用户看到的视频画面。
uid | 远端用户 ID。 |
renderMode | 远端用户视图的渲染模式:
|
mirrorMode | 远端用户视图的镜像模式:
|
|
abstract |
设置是否默认接收音频流。
默认取消或恢复订阅远端用户的音频流。
该方法需要在加入频道后调用。调用成功后,本地用户取消或恢复订阅调用时刻之后加入频道的远端用户。
muteRemoteAudioStream
(false),并指定你想要订阅的远端用户 ID。muteRemoteAudioStream(false)
。muted | 是否默认取消订阅远端用户的音频流:
|
|
abstract |
设置是否默认接收视频流。
默认取消或恢复订阅远端用户的视频流。
该方法需要在加入频道后调用。调用成功后,本地用户取消或恢复订阅调用时刻之后加入频道的远端用户。
muteRemoteVideoStream
(false),并指定你想要订阅的远端用户 ID。muteRemoteVideoStream(false)
。muted | 是否默认取消订阅远端用户的视频流:
|
|
abstract |
取消或恢复订阅所有远端用户的音频流。
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。
setDefaultMuteAllRemoteAudioStreams
的功能。 声网建议不要一起调用 muteAllRemoteAudioStreams
和 setDefaultMuteAllRemoteAudioStreams
,否则设置可能会不生效。详见《设置订阅状态》。muted | 是否取消订阅所有远端用户的音频流。
|
|
abstract |
调节本地播放的指定远端用户信号音量。
你可以在通话中调用该方法调节指定远端用户在本地播放的音量。如需调节多个用户在本地播放的音量,则需多次调用该方法。
uid | 远端用户的 ID。 |
volume | 播放音量,取值范围为 [0,100]。
|
|
abstract |
取消或恢复订阅指定远端用户的音频流。
uid | 指定用户的用户 ID。 |
muted | 是否取消订阅指定远端用户的音频流。
|
|
abstract |
取消或恢复订阅所有远端用户的视频流。
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。
setDefaultMuteAllRemoteVideoStreams
的功能。 声网建议不要一起调用 muteAllRemoteVideoStreams
和 setDefaultMuteAllRemoteVideoStreams
,否则设置可能会不生效。详见《设置订阅状态》。muted | 是否取消订阅所有远端用户的视频流。
|
|
abstract |
取消或恢复订阅指定远端用户的视频流。
uid | 指定用户的用户 ID。 |
muted | 是否取消订阅指定远端用户的视频流。
|
|
abstract |
设置订阅的视频流类型。
在网络条件受限的情况下,如果发送端没有调用 enableDualStreamMode(false)
关闭双流模式,接收端可以选择接收大流还是小流。其中,大流可以接为高分辨率高码率的视频流,小流则是低分辨率低码率的视频流。
正常情况下,用户默认接收大流。如需节约带宽和计算资源,则可以调用该方法动态调整对应远端视频流的大小。SDK 会根据该方法中的设置,切换大小流。
视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
调用本方法的执行结果将在 onApiCallExecuted
中返回。
该方法在加入频道前后都能调用。如果既调用了 setRemoteVideoStreamType
,也调用了 setRemoteDefaultVideoStreamType
,则 SDK 以 setRemoteVideoStreamType
中的设置为准。
uid | 远端用户的 ID。 |
streamType | 设置视频流大小类型:
|
|
abstract |
设置默认订阅的视频流类型。
setRemoteVideoStreamType
,则 SDK 以 setRemoteVideoStreamType
中的设置为准。streamType | 设置视频流大小类型:
|
|
abstract |
创建数据流。
createDataStream
[2/2]。该方法用于创建数据流。RtcChannel 生命周期内,每个用户最多只能创建 5 个数据流。频道内数据通道最多允许数据延迟 5 秒,若超过 5 秒接收方尚未收到数据流,则数据通道会向 App 报错。
该方法需要在加入频道后调用。
reliable
设为 true
且将 ordered
设为 false
。reliable | 设置是否保证接收方在 5 秒内收到数据消息:
|
ordered | 设置接收方是否按发送方发送的顺序接收数据消息:
|
|
abstract |
创建数据流。
该方法用于创建数据流。每个用户在每个频道内最多只能创建 5 个数据流。
该方法不支持数据可靠,接收方会丢弃超出发送时间 5 秒后的数据包。
config | 数据流设置:DataStreamConfig . |
|
abstract |
发送数据流。
该方法发送数据流消息到频道内所有用户。SDK 对该方法的实现进行了如下限制:
成功调用该方法后,远端会触发 onStreamMessage
回调,远端用户可以在该回调中获取接收到的流消息; 若调用失败,远端会触发 onStreamMessageError
回调。
streamId | createDataStream 方法返回的数据流 ID。 |
message | 待发送的数据,格式为 byte[]。 |
|
abstract |
增加旁路推流地址。
调用该方法后,你可以向 CDN 推送 RTMP 或 RTMPS 协议的媒体流。SDK 会在本地触发 onRtmpStreamingStateChanged
回调,报告增加旁路推流地址的状态。
url | CDN 推流地址,格式为 RTMP 或 RTMPS。该字符长度不能超过 1024 字节。url 不支持中文等特殊字符。 |
transcodingEnabled | 是否转码。如果设为 true ,则需要在该方法前先调用 setLiveTranscoding 方法。
|
|
abstract |
删除旁路推流地址。
调用该方法后,SDK 会在本地触发 onRtmpStreamingStateChanged
回调, 报告删除旁路推流地址的状态。
url | 待删除的推流地址,格式为 RTMP 或 RTMPS。该字符长度不能超过 1024 字节。推流地址不支持中文等特殊字符。 |
|
abstract |
设置直播转码。
该方法用于旁路推流的视图布局及音频设置等。调用该方法更新转码参数 LiveTranscoding
时,SDK 会触发 onTranscodingUpdated
回调。
首次调用该方法设置转码参数时,不会触发 onTranscodingUpdated
回调。
addPublishStreamUrl
。transcoding | 旁路推流布局相关设置:LiveTranscoding 。 |
|
abstract |
开始跨频道媒体流转发。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged
和 onChannelMediaRelayEvent
回调,并在回调中报告当前的跨频道媒体流转发状态和事件。
onChannelMediaRelayStateChanged
回调报告 RELAY_STATE_RUNNING(2) 和 RELAY_OK(0),且 onChannelMediaRelayEvent
回调报告 RELAY_EVENT_PACKET_SENT_TO_DEST_CHANNEL(4),则表示 SDK 开始在源频道和目标频道之间转发媒体流。onChannelMediaRelayStateChanged
回调报告 RELAY_STATE_FAILURE(3),则表示跨频道媒体流转发出现异常。stopChannelMediaRelay
方法退出当前的转发状态。channelMediaRelayConfiguration | 跨频道媒体流转发参数配置:ChannelMediaRelayConfiguration 。 |
|
abstract |
停止跨频道媒体流转发。
一旦停止,主播会退出所有目标频道。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged
回调。 如果报告 RELAY_STATE_IDLE(0) 和 RELAY_OK(0),则表示已停止转发媒体流。
onChannelMediaRelayStateChanged
回调,并报告状态码 RELAY_ERROR_SERVER_NO_RESPONSE(2) 或 RELAY_ERROR_SERVER_CONNECTION_LOST(8)。 你可以调用 leaveChannel
方法离开频道,跨频道媒体流转发会自动停止。 the media stream relay automatically stops.
|
abstract |
更新媒体流转发的频道。
成功开始跨频道转发媒体流后,如果你希望将流转发到多个目标频道,或退出当前的转发频道,可以调用该方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayEvent
回调, 并在回调中报告状态码 RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL(7)。
startChannelMediaRelay
方法并收到 onChannelMediaRelayStateChanged(RELAY_STATE_RUNNING, RELAY_OK)
后调用该方法;否则,方法调用会失败。ChannelMediaRelayConfiguration
类中的 removeDestChannelInfo
方法移除不需要的频道。channelMediaRelayConfiguration | 跨频道媒体流转发参数配置:ChannelMediaRelayConfiguration . |
|
abstract |
暂停向所有目标频道转发媒体流。
开始跨频道转发媒体流后,如果你需要暂停向所有频道转发媒体流,可以调用该方法; 暂停后,如果要恢复跨频道媒体流转发,可以调用 resumeAllChannelMediaRelay
方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged
回调,并在回调中报告是否成功暂停媒体流转发。
startChannelMediaRelay
后调用。
|
abstract |
恢复向所有目标频道转发媒体流。
调用 pauseAllChannelMediaRelay
方法后,如果你需要恢复向所有目标频道转发媒体流,可以调用该方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayEvent
回调,并在回调中报告是否成功恢复媒体流转发。
pauseAllChannelMediaRelay
后调用。
|
abstract |
自定义 RtcChannel 对象的远端视频渲染器。
自定义远端视频渲染器,表示自定义渲染远端用户看到的本地视频画面。实时音视频互动过程中,SDK 通常会启动默认的视频渲染器进行视频渲染。多频道场景下,当需要自定义视频渲染器时,你可以先通过 IVideoSink
自定义渲染器,然后调用该方法将自定义的渲染器添加到 RtcChannel
中。
uid | 远端用户的 ID。 |
render | 自定义的远端视频渲染器。详见 IVideoSink 。 |