RtcChannel

最近更新时间:2023-08-15 05:57:36

Public 成员函数
voidsetRtcChannelEventHandler (IRtcChannelEventHandler eventHandler)
IRtcChannelEventHandlergetEventHandler ()
abstract intdestroy ()
abstract StringchannelId ()
abstract StringgetCallId ()
abstract intgetConnectionState ()
abstract intjoinChannel (String token, String optionalInfo, String optionalUid, ChannelMediaOptions options)
abstract intleaveChannel ()
abstract intpublish ()
abstract intunpublish ()
abstract intrenewToken (String token)
abstract intsetClientRole (int role)
abstract intsetRemoteRenderMode (String uid, int renderMode, int mirrorMode)
abstract intsetDefaultMuteAllRemoteAudioStreams (boolean muted)
abstract intsetDefaultMuteAllRemoteVideoStreams (boolean muted)
abstract intmuteAllRemoteAudioStreams (boolean muted)
abstract intadjustUserPlaybackSignalVolume (String uid, int volume)
abstract intmuteRemoteAudioStream (String uid, boolean muted)
abstract intmuteAllRemoteVideoStreams (boolean muted)
abstract intmuteRemoteVideoStream (String uid, boolean muted)
abstract intsetRemoteVideoStreamType (String uid, int streamType)
abstract intsetRemoteDefaultVideoStreamType (int streamType)

详细描述

RtcChannel 类。

成员函数说明

setRtcChannelEventHandler()

abstract void setRtcChannelEventHandler(IRtcChannelEventHandler eventHandler)

设置频道事件句柄。

设置后,你可以通过 IRtcChannelEventHandler 回调监听对应频道内的事件、获取频道数据。

参数说明
eventHandlerRtcChannel对象的事件回调:IRtcChannelEventHandler

getEventHandler()

abstract IRtcChannelEventHandler getEventHandler()

获取频道事件句柄。

返回

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()

获取网络连接状态。

joinChannel()

abstract int joinChannel(String token,String optionalInfo,String optionalUid,ChannelMediaOptions  options)

使用 uid 加入频道。

该方法与 RtcEngine 类下的 joinChannel 方法有以下区别:

RtcChannel::joinChannelRtcEngine::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

离开当前频道。

成功调用该方法离开频道后,会触发如下回调:

返回

  • 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 会失效。当:

App 应重新获取 Token,然后调用该 API 更新 Token,否则 SDK 无法和服务器建立连接。

参数描述
token新的 Token

返回

  • 0:方法调用成功
  • < 0:方法调用失败

setClientRole()

abstract int setClientRole(int role)

设置直播场景下的用户角色。

该方法设置用户角色为观众或主播。 直播频道中,只有角色为主播的用户才能调用 RtcChannel 类下的 publish 方法.

成功调用该方法切换用户角色后,SDK 会触发以下回调:

参数描述
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)

停止/恢复接收所有音频流。

参数描述
mutetrue:停止接收所有远端音频流 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
mutetrue:停止接收指定用户的音频流 false:继续接收指定用户的音频流(默认) 注解

返回

  • 0:方法调用成功
  • < 0:方法调用失败

muteAllRemoteVideoStreams()

abstract int muteAllRemoteVideoStreams(boolean muted)

停止/恢复接收所有视频流。

参数描述
mutedtrue:停止接收所有远端视频流 false:继续接收所有远端视频流(默认)

返回

  • 0:方法调用成功
  • < 0:方法调用失败

muteRemoteVideoStream()

abstract int muteRemoteVideoStream(String uid,boolean muted )

停止/恢复接收指定视频流。

参数描述
uid指定的用户 ID
mutetrue:停止接收指定用户的视频流 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:方法调用失败