API Reference for android - RTCChannel
# RTCChannel
# RTCChannel
说明
RtcChannel 类在指定频道中实现实时音视频功能。通过创建多个 RtcChannel 对象,用户可以同时加入多个频道。
# initWithToken()
public int initWithToken(String token)
说明
初始化token
参数
变量名 | 描述 |
---|---|
token | 从业务服务器下发走网关的token |
返回
0 成功 其它失败
# init()
public int init(String roomId)
说明
培优初始化方式, 在Engine初始化之后调用
参数
变量名 | 描述 |
---|---|
roomId | 房间号 |
返回
0 代表成功,其他代表失败
# createRendererView()
public SurfaceView createRendererView()
说明
创建 RendererView。
该方法创建视频 RendererView,返回 SurfaceView 的类型。View 的操作和布局由 app 管理, SDK 在 app 提供的 View 上进行渲染。显示视频视图必须调用该方法,而不是直接调用 SurfaceView。
如果你需要使用 SurfaceView,请调用本方法;如果你需要使用 TextureView,请调用 CreateTextureView 方法。
返回
SurfaceView
# setupRemoteVideo()
public void setupRemoteVideo(View view, long uid)
说明
设置远端视频iew
参数
变量名 | 描述 |
---|---|
view | 视图 |
uid | 用户ID |
# setRemoteVolume()
public void setRemoteVolume(long uid, int volume)
说明
设置远端用户音量
参数
变量名 | 描述 |
---|---|
uid | 用户ID |
volume | 音量值 |
# setRemoteRenderMode()
public void setRemoteRenderMode(long uid, RTCEngine.RTCVideoRenderMode mode)
说明
设置远端渲染方式
参数
变量名 | 描述 |
---|---|
uid | |
mode | RTCVideoRenderModeHidden:填充 RTCVideoRenderModeFit:留黑边 |
# getTimestamp()
public long getTimestamp(int uid)
说明
获取SEI时间戳
参数
变量名 | 描述 |
---|---|
uid | 用户ID |
返回
0:无效 >0:有效时间戳
# joinChannel()
public void joinChannel()
说明
加入channel
加入Other room
加入这个房间必须使用观众身份.(无论是教师端还是学生端)
回调
IRTCChannelEventListener.localUserJoinedWithUid(String channelId, long uid)
# muteRemoteVideo()
public void muteRemoteVideo(long uid, boolean mute)
说明
取消或恢复订阅指定远端用户的视频流。
该方法需要在加入频道后调用。
参数
变量名 | 描述 |
---|---|
uid | 用户ID |
mute | 是否取消订阅指定远端用户的视频流。 true: 取消订阅。 false: (默认)订阅。 |
# muteRemoteAudio()
public void muteRemoteAudio(long uid, boolean mute)
说明
取消或恢复订阅指定远端用户的音频流。
该方法需要在加入频道后调用。
参数
变量名 | 描述 |
---|---|
uid | 用户ID |
mute | 是否取消订阅指定远端用户的音频流。 true:取消订阅。 false:(默认)订阅。 |
# muteAllRemoteVideo()
public void muteAllRemoteVideo(boolean mute)
说明
取消或恢复订阅所有远端用户的视频流。
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。
参数
变量名 | 描述 |
---|---|
mute | 是否取消订阅所有远端用户的视频流。 true: 取消订阅。 false:(默认)订阅。 |
该方法需要在加入频道后调用。
# muteAllRemoteAudio()
public void muteAllRemoteAudio(boolean mute)
说明
取消或恢复订阅所有远端用户的音频流。
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。
参数
变量名 | 描述 |
---|---|
mute | 是否取消订阅所有远端用户的音频流。 true: 取消订阅。 false:(默认)订阅。 |
# leaveChannel()
public void leaveChannel()
说明
离开channel
# destroy()
public void destroy()
说明
channel销毁
# setRemoteVideoStreamType()
public int setRemoteVideoStreamType(long uid, int streamType)
说明
设置订阅的视频流类型。大小流切换
在网络条件受限的情况下,如果发送端没有调用 enableDualStreamMode(false) 关闭双流模式,接收端可以选择接收大流还是小流。其中,大流为高分辨率高码率的视频流, 小流则是低分辨率低码率的视频流。
正常情况下,用户默认接收大流。如需节约带宽和计算资源,则可以调用该方法动态调整对应远端视频流的大小。 SDK 会根据该方法中的设置,切换大小流。
视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
参数
变量名 | 描述 |
---|---|
uid | 用户 ID |
streamType | 视频流类型: (0): 视频大流,即高分辨率、高码率视频流。 (1): 视频小流,即低分辨率、低码率视频流。 |
返回
0 代表成功,其他代表失败
# setEventListener()
public void setEventListener(IRTCChannelEventListener listener)
说明
设置channel的回调
参数
变量名 | 描述 |
---|---|
listener | 回调监听类 |
# setRole()
public int setRole(RTCEngine.RTCRole role)
说明
设置直播场景下的用户角色。
调用 setRole(BROADCASTING) 后,SDK 会默认设置用户角色为观众,你可以调用 setRole 设置用户角色为主播。
该方法在加入频道前后均可调用。
参数
变量名 | 描述 |
---|---|
role | RTCRoleBroadcaster:主播 RTCRoleAudience:观众 |
返回
0 代表成功,其他代表失败
# muteLocalVideo()
public int muteLocalVideo(boolean mute)
说明
取消或恢复发布本地视频流。
成功调用该方法后,远端会触发 didVideoMuted 回调。
同一时间,本地的音视频流只能发布到一个频道。如果你创建了多个频道,请确保你只在一个频道中调用 muteLocalVideo(false), 否则方法会调用失败并返回 -5 (ERR_REFUSED)。
该方法不会改变视频采集设备的使用状态。
该方法的调用是否生效受 joinRoom 和 setClientRole 方法的影响,
参数
变量名 | 描述 |
---|---|
mute | 是否mute |
回调
IRTCChannelEventListener:: void didVideoMuted(long uid, boolean muted);
# muteLocalAudio()
public int muteLocalAudio(boolean muted)
说明
取消或恢复发布本地音频流。
成功调用该方法后,远端会触发 onUserMuteAudio 回调。
同一时间,本地的音视频流只能发布到一个频道。如果你创建了多个频道,请确保你只在一个频道中调用 muteLocalVideo(false),否则方法会调用失败并返回 -5 (ERR_REFUSED)。
参数
变量名 | 描述 |
---|---|
muted | 是否取消发布本地音频流。 true:取消发布。 false:发布。 |
回调
IRTCChannelEventListener.didAudioMuted(long uid, boolean muted);
# startChannelMediaRelay()
public int startChannelMediaRelay(RTCEngine.RTCChannelMediaRelayConfiguration channelMediaRelayConfiguration)
说明
开始跨房间转推流
参数
变量名 | 描述 |
---|---|
channelMediaRelayConfiguration | 转推配置 |
返回
0 成功, 其它失败
# stopChannelMediaRelay()
public int stopChannelMediaRelay()
说明
停止跨房间转推流
返回
0 成功, 其它失败
# updateChannelMediaRelay()
public int updateChannelMediaRelay(RTCEngine.RTCChannelMediaRelayConfiguration channelMediaRelayConfiguration)
说明
更新转推流信息
参数
变量名 | 描述 |
---|---|
channelMediaRelayConfiguration | 转推配置 |
返回
0 成功, 其它失败
# addPublishStreamUrl()
public int addPublishStreamUrl(String url, boolean needTranscode)
说明
推流到CDN,增加旁路推流地址
调用该方法后,你可以向 CDN 推送 RTMP 或 RTMPS 协议的媒体流。
参数
变量名 | 描述 |
---|---|
url | CDN 推流地址,格式为 RTMP 或 RTMPS。该字符长度不能超过 1024 字节。url 不支持中文等特殊字符。 |
needTranscode | 是否转码。 true:转码。转码是指在旁路推流时对音视频流进行转码处理后,再推送到其他 CDN 服务器。多适用于频道内有多个主播,需要进行混流、合图的场景。 false:不转码。 |
返回
0 代表成功,其他代表失败
# removePublishStreamUrl()
public int removePublishStreamUrl(String url)
说明
移除CDN推流,删除旁路推流地址
参数
变量名 | 描述 |
---|---|
url | 推流地址 |
返回
0 代表成功,其他代表失败
# setRtmpConfig()
public int setRtmpConfig(RTCEngine.RTCRtmpConfig config)
说明
设置rtmp配置,该方法用于旁路推流的视图布局及音频设置等。
请确保已开通旁路推流的功能。
该方法仅适用于直播场景下的主播用户。
参数
变量名 | 描述 |
---|---|
config | 推流配置 |
返回
0 代表成功,其他代表失败
# sendStreamMessage()
public int sendStreamMessage(long timestamp, byte data)
说明
发送数据流。
方法发送数据流消息到频道内所有用户。SDK 对该方法的实现进行了如下限制:频道内每秒最多能发送 30 个包,且每个包最大为 1 KB。 每个客户端每秒最多能发送 6 KB 数据。频道内每人最多能同时有 5 个数据通道。
请确保在调用该方法前,已调用 createDataStream 创建了数据通道。
该方法仅适用于通信场景以及直播场景下的主播用户。
参数
变量名 | 描述 |
---|---|
timestamp | 时间戳 |
data | 待发送的数据 |
返回
0 代表成功,其他代表失败
# applyRemoteStreamSubscribeAdvice()
public int applyRemoteStreamSubscribeAdvice(long uid, int streamType)
说明
设置远端拉流的方式
参数
变量名 | 描述 |
---|---|
uid | 远端UID |
streamType | 流类型 0: 大流 1: 小流 2: 音频 |
返回
0(ERR_OK): 方法调用成功。
< 0: 方法调用失败。
# takeRemoteViewSnapshot()
public int takeRemoteViewSnapshot(long uid)
说明
获取拉流视频截图。
该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。
该方法是异步操作,调用返回时 SDK 并没有真正获取截图。
该方法需要在加入频道后调用。
如果用户的视频经过前处理,例如,添加了水印或美颜,生成的截图会包含前处理效果。
参数
变量名 | 描述 |
---|---|
uid | 用户id |
返回
0 代表成功,其他代表失败
# setupRemoteVideo()
public int setupRemoteVideo(long uid, TextureView view)
说明
初始化远端用户视图。
该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。
请在主线程调用该方法。
如果你希望在通话中更新远端用户的渲染或镜像模式,请使用 setRemoteRenderMode 方法。
参数
变量名 | 描述 |
---|---|
uid | 用户id |
view | 远端view |
返回
0 代表成功,其他代表失败
# setDefaultMuteAllRemoteAudioStreams()
public int setDefaultMuteAllRemoteAudioStreams(boolean muted)
说明
设置是否默认接收音频流。 - 后续通过 mute false打开
默认取消或恢复订阅远端用户的音频流。
该方法需要在加入频道后调用。调用成功后,本地用户取消或恢复订阅调用时刻之后加入频道的远端用户。
参数
变量名 | 描述 |
---|---|
muted | 是否默认取消订阅远端用户的音频流: true:默认取消订阅。 false:(默认)默认订阅。 |
返回
0 代表成功,其他代表失败
# setDefaultMuteAllRemoteVideoStreams()
public int setDefaultMuteAllRemoteVideoStreams(boolean muted)
说明
设置是否默认接收视频流。 - 后续通过 mute false打开
默认取消或恢复订阅远端用户的视频流。
该方法需要在加入频道后调用。调用成功后,本地用户取消或恢复订阅调用时刻之后加入频道的远端用户。
参数
变量名 | 描述 |
---|---|
muted | 是否默认取消订阅远端用户的视频流: true:默认取消订阅。 false:(默认)默认订阅。 |
返回
0 代表成功,其他代表失败