#include <IAgoraRtcChannel.h>
Public 成员函数 | |
virtual | ~IChannel () |
virtual int | release ()=0 |
virtual int | setChannelEventHandler (IChannelEventHandler *channelEh)=0 |
virtual int | joinChannel (const char *token, const char *info, uid_t uid, const ChannelMediaOptions &options)=0 |
virtual int | joinChannelWithUserAccount (const char *token, const char *userAccount, const ChannelMediaOptions &options)=0 |
virtual int | leaveChannel ()=0 |
virtual int | setAVSyncSource (const char *channelId, uid_t uid)=0 |
virtual int | publish ()=0 |
virtual int | unpublish ()=0 |
virtual const char * | channelId ()=0 |
virtual int | getCallId (agora::util::AString &callId)=0 |
virtual int | renewToken (const char *token)=0 |
virtual int | setEncryptionSecret (const char *secret)=0 |
virtual int | setEncryptionMode (const char *encryptionMode)=0 |
virtual int | enableEncryption (bool enabled, const EncryptionConfig &config)=0 |
virtual int | registerPacketObserver (IPacketObserver *observer)=0 |
virtual int | registerMediaMetadataObserver (IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0 |
virtual int | setClientRole (CLIENT_ROLE_TYPE role)=0 |
virtual int | setClientRole (CLIENT_ROLE_TYPE role, const ClientRoleOptions &options)=0 |
virtual int | setRemoteUserPriority (uid_t uid, PRIORITY_TYPE userPriority)=0 |
virtual int | setRemoteVoicePosition (uid_t uid, double pan, double gain)=0 |
virtual int | setRemoteRenderMode (uid_t userId, RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0 |
virtual int | setDefaultMuteAllRemoteAudioStreams (bool mute)=0 |
virtual int | setDefaultMuteAllRemoteVideoStreams (bool mute)=0 |
virtual int | muteLocalAudioStream (bool mute)=0 |
virtual int | muteLocalVideoStream (bool mute)=0 |
virtual int | muteAllRemoteAudioStreams (bool mute)=0 |
virtual int | adjustUserPlaybackSignalVolume (uid_t userId, int volume)=0 |
virtual int | muteRemoteAudioStream (uid_t userId, bool mute)=0 |
virtual int | muteAllRemoteVideoStreams (bool mute)=0 |
virtual int | muteRemoteVideoStream (uid_t userId, bool mute)=0 |
virtual int | setRemoteVideoStreamType (uid_t userId, REMOTE_VIDEO_STREAM_TYPE streamType)=0 |
virtual int | setRemoteDefaultVideoStreamType (REMOTE_VIDEO_STREAM_TYPE streamType)=0 |
virtual int | createDataStream (int *streamId, bool reliable, bool ordered)=0 |
virtual int | createDataStream (int *streamId, DataStreamConfig &config)=0 |
virtual int | sendStreamMessage (int streamId, const char *data, size_t length)=0 |
virtual int | addPublishStreamUrl (const char *url, bool transcodingEnabled)=0 |
virtual int | removePublishStreamUrl (const char *url)=0 |
virtual int | setLiveTranscoding (const LiveTranscoding &transcoding)=0 |
virtual int | startRtmpStreamWithoutTranscoding (const char *url)=0 |
virtual int | startRtmpStreamWithTranscoding (const char *url, const LiveTranscoding &transcoding)=0 |
virtual int | updateRtmpTranscoding (const LiveTranscoding &transcoding)=0 |
virtual int | stopRtmpStream (const char *url)=0 |
virtual int | startChannelMediaRelay (const ChannelMediaRelayConfiguration &configuration)=0 |
virtual int | updateChannelMediaRelay (const ChannelMediaRelayConfiguration &configuration)=0 |
virtual int | pauseAllChannelMediaRelay ()=0 |
virtual int | resumeAllChannelMediaRelay ()=0 |
virtual int | stopChannelMediaRelay ()=0 |
virtual CONNECTION_STATE_TYPE | getConnectionState ()=0 |
virtual int | enableRemoteSuperResolution (uid_t userId, bool enable) AGORA_DEPRECATED_ATTRIBUTE=0 |
virtual int | enableRemoteSuperResolution (bool enabled, SR_MODE mode, uid_t userId)=0 |
IChannel 类
|
inlinevirtual |
|
pure virtual |
|
pure virtual |
设置 IChannel 对象的事件句柄。
你可以通过设置的事件句柄监听本 IChannel
对象对应频道的事件,并接收频道中用户视频信息等。
channelEh | IChannel 对象的事件句柄。详见 IChannelEventHandler |
|
pure virtual |
通过 UID 加入频道。
相比于 IRtcEngine 类下的 joinChannel
方法,该方法支持通过创建多个 IChannel 对象,并调用相应对象的 joinChannel
方法,实现同时加入多个频道。
用户成功加入频道后,默认发布本地音视频流并自动订阅频道内所有其他用户的音视频流。订阅音视频流会产生用量并影响计费。如果想取消订阅,可以通过调用相应的 mute
方法实现。
token | 在你服务器上生成的 Token。详见使用 Token 鉴权。 |
info | (非必选项)开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户。 |
uid | 用户 ID,32 位无符号整数。建议设置范围:1 到 232-1,并保证唯一性。如果不指定(即设为 0),SDK 会自动分配一个,并在 onJoinChannelSuccess 回调中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。 |
options | 频道媒体设置选项: ChannelMediaOptions。 |
-2(ERR_INVALID_ARGUMENT)
: 参数无效。-3(ERR_NOT_READY)
: SDK 初始化失败,请尝试重新初始化 SDK。-5(ERR_REFUSED)
: 调用被拒绝。可能有如下两个原因:-7(ERR_NOT_INITIALIZED)
: SDK 尚未初始化,就调用其 API。请确认在调用 API 之前已创建 IRtcEngine 对象并完成初始化。
|
pure virtual |
通过 User account 加入频道。
相比于 IRtcEngine 类下的 joinChannelWithUserAccount
方法,该方法支持通过创建多个 IChannel 对象,并调用相应对象的 joinChannelWithUserAccount
方法,实现同时加入多个频道。
用户成功加入频道后,发布本地音视频流并自动订阅频道内所有其他用户的音视频流。订阅音视频流会产生用量并影响计费。如果想取消订阅, 可以通过设置 options
参数或调用相应的 mute
方法实现。
token | 在你服务器上生成的 Token。详见使用 Token 鉴权。 |
userAccount | 用户 User Account。该参数为必需,最大不超过 255 字节,不可为 null。请确保加入频道的 User Account 的唯一性。 以下为支持的字符集范围(共 89 个字符):
|
options | 频道媒体设置选项: ChannelMediaOptions。 |
ERR_JOIN_CHANNEL_REJECTED(-17)
: 加入频道被拒绝。由于 SDK 不支持用户重复加入同一个 IChannel 频道, 当已经加入某个 IChannel 频道的用户再次调用该 IChannel 对象的加入频道方法时,会返回此错误码。
|
pure virtual |
离开频道。
离开频道,即挂断或退出通话。
当调用 joinChannel 方法后,必须调用 leaveChannel 结束通话,否则无法开始下一次通话。 不管当前是否在通话中,都可以调用 leaveChannel,没有副作用。该方法会把会话相关的所有资源释放掉。 该方法是异步操作,调用返回时并没有真正退出频道。在真正退出频道后,SDK 会触发 onLeaveChannel 回调。 成功调用该方法离开频道后,本地会触发 onLeaveChannel 回调;通信场景下的用户和直播场景下的主播离开频道后,远端会触发 onUserOffline 回调。
|
pure virtual |
设置发流端音画同步。
同一用户可能使用两个设备分别发送音频流和视频流,为保证接收端听到和看到的音频和视频的时间同步性,你可以在视频发送端调用该方法,并传入音频发送端的频道名、用户 ID。 SDK 会以发送的音频流的时间戳为基准进行自动调节发送的视频流,以保证即使在两个发送端的上行网络情况不一致(如分别使用 Wi-Fi 和 4G 网络)的情况下,也能让接收到的音视频具有时间同步性。
channelId | 标识音频发送端所在频道的频道名。 |
uid | 音频发送端的用户 ID。 |
|
pure virtual |
将本地音视频流发布到本频道。
该方法的调用需满足以下要求,否则 SDK 会返回 ERR_REFUSED (5) :
|
pure virtual |
停止将本地音视频流发布到本频道。
请确保你想要 unpublish
音视频流的频道 channelId
,与当前正在 publish 音视频流的频道 channelId
一致,否则 SDK 会返回 ERR_REFUSED (5)
|
pure virtual |
获取当前频道的频道名。
channelId
,即当前频道的频道名。
|
pure virtual |
获取当前通话 ID。
客户端在每次 joinChannel 后会生成一个对应的 callId,标识该客户端的此次通话。 有些方法如 rate 、 complain 需要在通话结束后调用,向 SDK 提交反馈,这些方法必须指定 CallId 参数。使用这些反馈方法,需要在通话过程中调用 getCallId 方法获取 CallId,在通话结束后在反馈方法中作为参数传入。
[out] | callId | 当前的通话 ID。 |
|
pure virtual |
更新 Token。
该方法用于更新 Token。如果启用了 Token 机制,过一段时间后使用的 Token 会失效。当:
App 应重新获取 Token,然后调用该方法更新 Token,否则 SDK 无法和服务器建立连接。
token | 新的 Token。 |
|
pure virtual |
启用内置加密,并设置数据加密密码。
在加入频道之前,App 需调用 setEncryptionSecret
方法指定 secret 来启用内置的加密功能,同一频道内的所有用户应设置相同的 secret。当用户离开频道时,该频道的 secret 会自动清除。如果未指定 secret 或将 secret 设置为空,则无法激活加密功能。
secret | 加密密码。 |
|
pure virtual |
启用内置的加密方案。
视频 SDK 支持内置加密方案,默认支持 AES-128-XTS。如需采用其他加密方案,可以调用本方法。同一频道内的所有用户必须设置相同的加密方式和 secret 才能进行通话。关于这几种加密方式的区别,请参考 AES 加密算法的相关资料。
encryptionMode | 加密模式:
|
|
pure virtual |
开启或关闭内置加密。
在安全要求较高的场景下,声网建议你在加入频道前,调用 enableEncryption
方法开启内置加密。
用户离开频道后,SDK 会自动关闭加密。如需重新开启加密,你需要在用户再次加入频道前调用该方法。
自 v3.4.5 起,声网推荐使用 AES_128_GCM2
或 AES_256_GCM2
加密模式。 这两种模式支持设置盐,安全性更高。设置方法详见《媒体流加密》。
enabled | 是否开启内置加密:
|
config | 配置内置加密方案。详见 EncryptionConfig |
IRtcEngine
对象并完成初始化。
|
pure virtual |
注册数据包观测器。
该方法注册数据包观测器 (Packet Observer)。在 SDK 发送/接收(语音、视频)网络包时,会回调 IPacketObserver 定义的接口,App 可用此接口对数据做处理,例如加解密。
observer | IPacketObserver 。 |
|
pure virtual |
注册媒体 metadata 观测器用于接收或发送 metadata。
observer | 指向已注册的 metadata 观测器的指针。详见: IMetadataObserver 。 |
type | 用户希望在观测器中使用的 METADATA 类型 。目前仅支持 VIDEO_METADATA 。详见: METADATA_TYPE 。 |
|
pure virtual |
设置直播场景下的用户角色。
直播场景下,SDK 会默认设置用户角色为观众,你可以调用 setClientRole
设置用户角色为主播。
该方法在加入频道前后均可调用。如果你在加入频道后调用该方法切换用户角色,调用成功后,SDK 会自动进行如下操作:
role | 直播场景里的用户角色: CLIENT_ROLE_TYPE |
options
参数的 joinChannel
,并使用默认设置 publishLocalAudio = true
或 publishLocalVideo = true
。setClientRole
,并设置用户角色为主播。muteLocalAudioStream(false)
或 muteLocalVideoStream(false)
。
|
pure virtual |
设置直播场景下的用户角色。
直播场景下,SDK 会默认设置用户角色为观众,你可以调用 setClientRole
设置用户角色为主播。
该方法在加入频道前后均可调用。如果你在加入频道后调用该方法切换用户角色,调用成功后,SDK 会自动进行如下操作:
role
)确定用户在 SDK 层的权限,包含是否可以发送流、是否可以接收流、是否可以推流到 CDN 等。level
)需要与角色结合使用,确定用户在其权限范围内,可以操作和享受到的服务级别。例如对于观众,选择接收低延时还是超低延时的视频流。**用户级别会影响计费**。role | 直播场景里的用户角色: CLIENT_ROLE_TYPE |
options | 用户具体设置,包含用户级别,详见 ClientRoleOptions |
options
参数的 joinChannel
,并使用默认设置 publishLocalAudio = true
或 publishLocalVideo = true
。setClientRole
,并设置用户角色为主播。muteLocalAudioStream(false)
或 muteLocalVideoStream(false)
。
|
pure virtual |
设置远端用户流的优先级。
设置远端用户的优先级。如果将某个用户的优先级设为高,那么发给这个用户的音视频流的优先级就会高于其他用户。 弱网下 SDK 会优先保证高优先级用户收到的流的质量。
uid | 远端用户的 ID。 |
userPriority | 远端用户的需求优先级。详见: PRIORITY_TYPE 。 |
|
pure virtual |
设置远端用户的语音位置。
设置远端用户声音的空间位置和音量,方便本地用户听声辨位。
通过调用该接口设置远端用户声音出现的位置,左右声道的声音差异会产生声音的方位感,从而判断出远端用户的实时位置。在多人在线游戏场景,如吃鸡游戏中,该方法能有效增加游戏角色的方位感,模拟真实场景。
uid | 远端用户的 ID |
pan | 设置远端用户声音的空间位置,取值范围为 [-1.0,1.0]:
|
gain | 设置远端用户声音的音量,取值范围为 [0.0,100.0],默认值为 100.0,表示该用户的原始音量。取值越小,则音量越低。 |
|
pure virtual |
更新远端视图显示模式。
初始化远端用户视图后,你可以调用该方法更新远端用户视图在本地显示时的渲染和镜像模式。该方法只影响本地用户看到的视频画面。
userId | 远端用户 ID。 |
renderMode | 远端用户视图的渲染模式,详见 RENDER_MODE_TYPE |
mirrorMode |
|
|
pure virtual |
默认取消或恢复订阅远端用户的音频流。
该方法需要在加入频道后调用。调用成功后,本地用户取消或恢复订阅调用时刻之后加入频道的远端用户。
mute | 是否默认取消订阅远端用户的音频流:
|
|
pure virtual |
默认取消或恢复订阅远端用户的视频流。
该方法需要在加入频道后调用。调用成功后,本地用户取消或恢复订阅调用时刻之后加入频道的远端用户。
mute | 是否默认取消订阅远端用户的视频流:
|
|
pure virtual |
取消或恢复发布本地音频流。
该方法仅设置用户在 IChannel 频道中的音频发布状态。
成功调用该方法后,远端会触发 onRemoteAudioStateChanged 回调。
同一时间,本地的音视频流只能发布到一个频道。如果你创建了多个频道,请确保你只在一个频道中 调用 muteLocalAudioStream (false), 否则方法会调用失败并返回 -5 (ERR_REFUSED)
。
mute | 是否取消发布本地音频流。
|
-5 (ERR_REFUSED)
: 调用被拒绝。
|
pure virtual |
取消或恢复发布本地视频流。
该方法仅设置用户在 IChannel 频道中的视频发布状态。
成功调用该方法后,远端会触发 onRemoteVideoStateChanged 回调。
同一时间,本地的音视频流只能发布到一个频道。如果你创建了多个频道,请确保你只在一个频道中 调用 muteLocalVideoStream (false), 否则方法会调用失败并返回 -5 (ERR_REFUSED)
。
mute | 是否取消发布本地视频流。
|
-5 (ERR_REFUSED)
: 调用被拒绝。
|
pure virtual |
取消或恢复订阅所有远端用户的音频流。
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。
muteAllRemoteAudioStreams
和 setDefaultMuteAllRemoteAudioStreams
,否则设置可能会不生效。详见《设置订阅状态》。mute | 是否取消订阅所有远端用户的音频流。
|
|
pure virtual |
调节本地播放的指定远端用户信号音量。
你可以在通话中调用该方法调节指定远端用户在本地播放的音量。如需调节多个用户在本地播放的音量,则需多次调用该方法。
userId | 远端用户 ID。 |
volume | 播放音量,取值范围为 [0,100],其中:
|
|
pure virtual |
取消或恢复订阅指定远端用户的音频流。
userId | 指定用户的用户 ID。 |
mute | 是否取消订阅指定远端用户的音频流。
|
|
pure virtual |
取消或恢复订阅所有远端用户的视频流。
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。
muteAllRemoteVideoStreams
和 setDefaultMuteAllRemoteAudioStreams
,否则设置可能会不生效。详见《设置订阅状态》。mute | 是否取消订阅所有远端用户的视频流。
|
|
pure virtual |
取消或恢复订阅指定远端用户的视频流。
userId | 指定用户的用户 ID。 |
mute | 是否取消订阅指定远端用户的视频流。
|
|
pure virtual |
设置订阅的视频流类型。
在网络条件受限的情况下,如果发送端没有调用 enableDualStreamMode (false) 关闭双流模式, 接收端可以选择接收大流还是小流。其中,大流可以接为高分辨率高码率的视频流, 小流则是低分辨率低码率的视频流。
正常情况下,用户默认接收大流。如需接收小流,可以调用本方法进行切换。SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。 视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
调用本方法的执行结果将在 onApiCallExecuted 中返回。
setRemoteVideoStreamType
,也调用了 setRemoteDefaultVideoStreamType,则 SDK 以 setRemoteVideoStreamType
中的设置为准。userId | 用户 ID。 |
streamType | 视频流类型: REMOTE_VIDEO_STREAM_TYPE 。 |
|
pure virtual |
设置默认订阅的视频流类型。
在网络条件受限的情况下,如果发送端没有调用 enableDualStreamMode (false) 关闭双流模式, 接收端可以选择接收大流还是小流。其中,大流可以接为高分辨率高码率的视频流, 小流则是低分辨率低码率的视频流。
正常情况下,用户默认接收大流。如需默认接收所有用户的视频小流,可以调用本方法进行切换。SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。视频小流默认 的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
调用本方法的执行结果将在 onApiCallExecuted 中返回。
setRemoteVideoStreamType
,则 SDK 以 setRemoteVideoStreamType
中的设置为准。streamType | 视频流类型: REMOTE_VIDEO_STREAM_TYPE 。 |
|
pure virtual |
创建数据流。
该方法用于创建数据流。RtcEngine 生命周期内,每个用户最多只能创建 5 个数据流。频道内数据通道最多允许数据延迟 5 秒,若超过 5 秒接收方尚未收到数据流,则数据通道会向 App 报错。
reliable
设为 true
且 ordered
设为 false
。[out] | streamId | 数据流 ID。 |
reliable |
| |
ordered |
|
|
pure virtual |
创建数据流。
该方法用于创建数据流。每个用户在每个频道内最多只能创建 5 个数据流。
相比 createDataStream [1/2],本方法不支持数据可靠,接收方会丢弃超出发送时间 5 秒后的数据包。
[out] | streamId | 数据流 ID |
config | 数据流设置: DataStreamConfig |
|
pure virtual |
发送数据流。
该方法发送数据流消息到频道内所有用户。SDK 对该方法的实现进行了如下限制:频道内每秒最多能发送 30 个包,且每个包最大为 1 KB。 API 须对数据通道的传送速率进行控制: 每个客户端每秒最多能发送 6 KB 数据。频道内每人最多能同时有 5 个数据通道。 成功调用该方法后,远端会触发 onStreamMessage 回调,远端用户可以在该回调中获取接收到的流消息;若调用失败,远端会触发 onStreamMessageError 回调。
streamId | 由 createDataStream 返回的数据流 ID。 |
data | 自定义数据。 |
length | 数据长度。 |
|
pure virtual |
增加旁路推流地址。
调用该方法后,你可以向 CDN 推送 RTMP 或 RTMPS 协议的媒体流。SDK 会在本地触发 onRtmpStreamingStateChanged 回调,报告增加旁路推流地址的状态。
url | CDN 推流地址,格式为 RTMP 或 RTMPS。该字符长度不能超过 1024 字节。url 不支持中文字符等特殊字符。 |
transcodingEnabled |
|
|
pure virtual |
删除旁路推流地址。
调用该方法后,SDK 会在本地触发 onRtmpStreamingStateChanged 回调,报告删除旁路推流地址的状态。
url | 待删除的旁路推流地址,格式为 RTMP 或 RTMPS。该字符长度不能超过 1024 字节。 |
|
pure virtual |
设置直播推流转码。
该方法用于旁路推流的视图布局及音频设置等。调用该方法更新转码设置后本地会触发 onTranscodingUpdated 回调。
onTranscodingUpdated
回调。transcoding | 详见 LiveTranscoding 。 |
|
pure virtual |
开始非转码推流。
调用该方法,你可以向指定的 CDN 推流地址推送直播音视频流。该方法每次只能向一个地址推送媒体流,如果你需要向多个地址推流,则需多次调用该方法。
调用该方法后,SDK 会在本地触发 onRtmpStreamingStateChanged 回调,报告推流的状态。
url | CDN 推流地址。格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。不支持中文字符等特殊字符。 |
|
pure virtual |
开始 CDN 直播推流并设置转码属性。
调用该方法,你可以向指定的 CDN 推流地址推送直播音视频流并设置转码属性。该方法每次只能向一个地址推送媒体流,如果你需要向多个地址转码推流,则需多次调用该方法。
调用该方法后,SDK 会在本地触发 onRtmpStreamingStateChanged 回调,报告推流的状态。
url | CDN 推流地址。格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。不支持中文字符等特殊字符。 |
transcoding | CDN 直播推流的转码属性,详见 LiveTranscoding 类。 |
|
pure virtual |
更新转码属性。
开启转码推流后,你可以根据场景需求,动态更新转码属性。转码属性更新后,SDK 会触发 onTranscodingUpdated 回调。
transcoding | CDN 直播推流的转码属性,详见 LiveTranscoding 类。 |
|
pure virtual |
结束 CDN 直播推流。
调用该方法,你可以结束指定的 CDN 推流地址上的直播。该方法每次只能结束一个推流地址上的直播,如果你需要结束多个推流地址的直播,则需多次调用该方法。
调用该方法后,SDK 会在本地触发 onRtmpStreamingStateChanged 回调,报告推流的状态。
url | CDN 推流地址。格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。不支持中文字符等特殊字符。 |
|
pure virtual |
开始跨频道媒体流转发。该方法可用于实现跨频道连麦等场景。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged 和 onChannelMediaRelayEvent 回调,并在回调中报告当前的跨频道媒体流转发状态和事件。
configuration | 跨频道媒体流转发参数配置。详见 ChannelMediaRelayConfiguration 。 |
|
pure virtual |
更新媒体流转发的频道。
成功开始跨频道转发媒体流后,如果你希望将流转发到多个目标频道, 或退出当前的转发频道,可以调用该方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayEvent 回调, 并在回调中报告状态码 RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL (7)。
configuration | 跨频道媒体流转发参数配置。详见 ChannelMediaRelayConfiguration 。 |
|
pure virtual |
暂停向所有目标频道转发媒体流。
开始跨频道转发媒体流后,如果你需要暂停向所有频道转发媒体流,可以调用该方法;暂停后,如果要恢复跨频道媒体流转 发,可以调用 resumeAllChannelMediaRelay 方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayEvent 回调, 并在回调中报告是否成功暂停媒体流转发。
|
pure virtual |
恢复向所有目标频道转发媒体流。
调用 pauseAllChannelMediaRelay 方法后,如果你需要恢复向所有目标频道转发媒体流, 可以调用该方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayEvent 回调,并在 回调中报告是否成功恢复媒体流转发。
|
pure virtual |
停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged 回调。如果报告 RELAY_STATE_IDLE (0) 和 RELAY_OK (0),则表示已停止转发媒体流。
|
pure virtual |
|
pure virtual |
开启/关闭远端视频超分辨率。(beta 功能)
该功能可以有效地提升本地用户看到的远端视频画面的分辨率。远端用户视频的原始分辨率为 a × b,开启该功能后,本地设备会以 2a × 2b 的分辨率显示该远端视频。
调用该方法后,SDK 会触发 onUserSuperResolutionEnabled 回调报告超分辨率是否成功开启。
libagora_super_resolution_extension.so
AgoraSuperResolutionExtension.xcframework
userId | 远端用户 ID。 |
enable | 是否对远端视频开启超级分辨率:
|
-157 (ERR_MODULE_NOT_FOUND)
: 未集成超分辨率动态库
|
pure virtual |
开启/关闭远端视频超分辨率。(beta 功能)
该功能可以有效地提升用户看到的远端视频画面的分辨率,即对接收到的某个远端用户的视频宽和高均扩大为 2 倍像素。
调用该方法后,SDK 会触发 onUserSuperResolutionEnabled 回调报告超分辨率是否成功开启。
libagora_super_resolution_extension.so
AgoraSuperResolutionExtension.xcframework
libagora_super_resolution_extension.dll
使用限制 超分辨率功能会额外耗费系统资源。为平衡视觉体验和系统消耗,该功能有如下使用限制:
enabled | 是否对远端视频开启超级分辨率:
|
mode | 超分辨率的模式。详见 SR_MODE |
userId | 远端用户 ID。该参数仅在 mode 为 SR_MODE_MANUAL(0) 时生效。 |
-157 (ERR_MODULE_NOT_FOUND)
: 未集成超分辨率动态库