NERtc Unity SDK  V5.4.108
Public 成员函数 | Public 属性 | 所有成员列表
nertc.IRtcChannel类 参考abstract
类 nertc.IRtcChannel 继承关系图:

Public 成员函数

abstract IRtcEngine GetEngine ()
 
abstract int Destroy ()
 
abstract string GetChannelName ()
 
abstract int JoinChannel (string token, ulong uid, RtcJoinChannelOptions? channelOptions=null)
 
abstract int LeaveChannel ()
 
abstract int SetStatsObserver (IMediaStatsObserver observer)
 
abstract int EnableAudioVolumeIndication (bool enable, ulong interval, bool enableVad)
 
abstract int EnableLocalAudio (RtcAudioStreamType type, bool enabled)
 
abstract int MuteLocalAudioStream (RtcAudioStreamType type, bool mute)
 
abstract int EnableLocalVideo (RtcVideoStreamType type, bool enabled)
 
abstract int MuteLocalVideoStream (RtcVideoStreamType type, bool mute)
 
abstract int StartScreenCaptureByScreenRect (RtcRectangle screenRect, RtcRectangle regionRect, RtcScreenCaptureParameters captureParams)
 
abstract int StartScreenCaptureByDisplayId (ulong displayId, RtcRectangle regionRect, RtcScreenCaptureParameters captureParams)
 
abstract int StartScreenCaptureByWindowId (IntPtr windowId, RtcRectangle regionRect, RtcScreenCaptureParameters captureParams)
 
abstract int UpdateScreenCaptureRegion (RtcRectangle regionRect)
 
abstract int SetScreenCaptureMouseCursor (bool captureCursor)
 
abstract int StopScreenCapture ()
 
abstract int PauseScreenCapture ()
 
abstract int ResumeScreenCapture ()
 
abstract int SetExcludeWindowList (IntPtr[] windowList)
 
abstract int UpdateScreenCaptureParameters (RtcScreenCaptureParameters captureParams)
 
abstract int SetupLocalVideoCanvas (RtcVideoStreamType type, RtcVideoCanvas canvas)
 
abstract int SetLocalRenderMode (RtcVideoStreamType type, RtcVideoScalingMode scalingMode)
 
abstract int SetLocalVideoMirrorMode (RtcVideoStreamType type, RtcVideoMirrorMode mirrorMode)
 
abstract int SetupRemoteVideoCanvas (ulong uid, RtcVideoStreamType type, RtcVideoCanvas canvas)
 
abstract int SetRemoteRenderMode (ulong uid, RtcVideoStreamType type, RtcVideoScalingMode scalingMode)
 
abstract int SetClientRole (RtcClientRole role)
 
abstract int SetLocalMediaPriority (int priority, bool isPreemptive)
 
abstract RtcConnectionStateType GetConnectionState ()
 
abstract int SetCameraCaptureConfig (RtcVideoStreamType type, RtcCameraCaptureConfig config)
 
abstract int SetVideoConfig (RtcVideoStreamType type, RtcVideoConfig config)
 
abstract int EnableDualStreamMode (bool enable)
 
abstract int SubscribeRemoteAudioStream (RtcAudioStreamType streamType, ulong uid, bool subscribe)
 
abstract int SubscribeAllRemoteAudioStream (bool subscribe)
 
abstract int SetAudioSubscribeOnlyBy (ulong[] uids)
 
abstract int SetSubscribeAudioAllowList (ulong[] uids)
 
abstract int SetSubscribeAudioBlockList (ulong[] uids)
 
abstract int SubscribeRemoteVideoStream (ulong uid, RtcVideoStreamType type, RtcRemoteVideoStreamType streamType, bool subscribe)
 
abstract int AddLiveStreamTask (RtcLiveStreamTaskInfo info)
 
abstract int UpdateLiveStreamTask (RtcLiveStreamTaskInfo info)
 
abstract int RemoveLiveStreamTask (string taskId)
 
abstract int SendSEIMsg (byte[] data, int length, RtcVideoStreamType type)
 
abstract int TakeLocalSnapshot (RtcVideoStreamType streamType, RtcTakeSnapshotCallback callback)
 
abstract int TakeRemoteSnapshot (ulong uid, RtcVideoStreamType streamType, RtcTakeSnapshotCallback callback)
 
abstract int AdjustRecordingSignalVolume (int volume)
 
abstract int AdjustPlaybackSignalVolume (int volume)
 
abstract int AdjustUserPlaybackSignalVolume (ulong uid, int volume)
 
abstract int AdjustChannelPlaybackSignalVolume (uint volume)
 
abstract int StartChannelMediaRelay (RtcChannelMediaRelayConfig config)
 
abstract int UpdateChannelMediaRelay (RtcChannelMediaRelayConfig config)
 
abstract int StopChannelMediaRelay ()
 
abstract int SetLocalPublishFallbackOption (RtcStreamFallbackOption option)
 
abstract int SetRemoteSubscribeFallbackOption (RtcStreamFallbackOption option)
 
abstract int SetRemoteHighPriorityAudioStream (bool enabled, ulong uid)
 
abstract int SetExternalVideoSource (RtcVideoStreamType type, bool enabled)
 
abstract int PushExternalVideoFrame (RtcVideoStreamType type, RtcExternalVideoFrame frame)
 
abstract int EnableMediaPublish (bool enabled, RtcMediaPubType mediaType)
 
abstract int UpdatePermissionKey (string key)
 
abstract int ReportCustomEvent (string eventName, string customIdentify, string parameters)
 
abstract int SetRangeAudioMode (RtcRangeAudioMode mode)
 
abstract int SetRangeAudioTeamID (int teamID)
 
abstract int SetAudioRecvRange (int audibleDistance, int conversationalDistance, RtcDistanceRolloffModel rollOff)
 
abstract int UpdateSelfPosition (RtcPositionInfo info)
 
abstract int EnableSpatializerRoomEffects (bool enable)
 
abstract int SetSpatializerRoomProperty (RtcSpatializerRoomProperty roomProperty)
 
abstract int SetSpatializerRenderMode (RtcSpatializerRenderMode mode)
 
abstract int InitSpatializer ()
 
abstract int EnableSpatializer (bool enable)
 

Public 属性

ChannelOnError ChannelOnError
 
ChannelOnWarning ChannelOnWarning
 
ChannelOnAPICallExecuted ChannelOnAPICallExecuted
 
ChannelOnJoinChannel ChannelOnJoinChannel
 
ChannelOnReconnectingStart ChannelOnReconnectingStart
 
ChannelOnConnectionStateChange ChannelOnConnectionStateChange
 
ChannelOnRejoinChannel ChannelOnRejoinChannel
 
ChannelOnLeaveChannel ChannelOnLeaveChannel
 
ChannelOnDisconnect ChannelOnDisconnect
 
ChannelOnClientRoleChanged ChannelOnClientRoleChanged
 
ChannelOnUserJoined ChannelOnUserJoined
 
ChannelOnUserLeft ChannelOnUserLeft
 
ChannelOnUserAudioStart ChannelOnUserAudioStart
 
ChannelOnUserAudioStop ChannelOnUserAudioStop
 
ChannelOnUserAudioMute ChannelOnUserAudioMute
 
ChannelOnUserVideoStart ChannelOnUserVideoStart
 
ChannelOnUserVideoStop ChannelOnUserVideoStop
 
ChannelOnUserVideoMute ChannelOnUserVideoMute
 
ChannelOnScreenCaptureStatusChanged ChannelOnScreenCaptureStatusChanged
 
ChannelOnUserVideoProfileUpdate ChannelOnUserVideoProfileUpdate
 
ChannelOnFirstAudioDataReceived ChannelOnFirstAudioDataReceived
 
ChannelOnFirstVideoDataReceived ChannelOnFirstVideoDataReceived
 
ChannelOnRemoteVideoReceiveSizeChanged ChannelOnRemoteVideoReceiveSizeChanged
 
ChannelOnLocalVideoRenderSizeChanged ChannelOnLocalVideoRenderSizeChanged
 
ChannelOnFirstAudioFrameDecoded ChannelOnFirstAudioFrameDecoded
 
ChannelOnFirstVideoFrameDecoded ChannelOnFirstVideoFrameDecoded
 
ChannelOnLocalAudioVolumeIndication ChannelOnLocalAudioVolumeIndication
 
ChannelOnRemoteAudioVolumeIndication ChannelOnRemoteAudioVolumeIndication
 
ChannelOnAddLiveStreamTask ChannelOnAddLiveStreamTask
 
ChannelOnUpdateLiveStreamTask ChannelOnUpdateLiveStreamTask
 
ChannelOnRemoveLiveStreamTask ChannelOnRemoveLiveStreamTask
 
ChannelOnLiveStreamStateChanged ChannelOnLiveStreamStateChanged
 
ChannelOnRecvSEIMessage ChannelOnRecvSEIMessage
 
ChannelOnMediaRelayStateChanged ChannelOnMediaRelayStateChanged
 
ChannelOnMediaRelayEvent ChannelOnMediaRelayEvent
 
ChannelOnPublishFallbackToAudioOnly ChannelOnPublishFallbackToAudioOnly
 
ChannelOnSubscribeFallbackToAudioOnly ChannelOnSubscribeFallbackToAudioOnly
 
ChannelOnMediaRightChanged ChannelOnMediaRightChanged
 
ChannelOnPermissionKeyWillExpire ChannelOnPermissionKeyWillExpire
 
ChannelOnUpdatePermissionKey ChannelOnUpdatePermissionKey
 

详细描述

IRtcChannel 类在指定房间中实现实时音视频功能。通过创建多个 IRtcChannel 对象,用户可以同时加入多个房间。

成员函数说明

◆ GetEngine()

abstract IRtcEngine nertc.IRtcChannel.GetEngine ( )
pure virtual

获取channel关联的nertc_engine实例

自从
V4.5.0

◆ Destroy()

abstract int nertc.IRtcChannel.Destroy ( )
pure virtual

销毁 IRtcChannel 实例,释放资源。

自从
V4.5.0

◆ GetChannelName()

abstract string nertc.IRtcChannel.GetChannelName ( )
pure virtual

获取当前房间名。

自从
V4.5.0
返回
  • 成功:当前IRtcChannel房间名。
  • 失败:返回空。

◆ JoinChannel()

abstract int nertc.IRtcChannel.JoinChannel ( string  token,
ulong  uid,
RtcJoinChannelOptions channelOptions = null 
)
pure virtual

加入音视频房间。

注解
  • 房间内每个用户的用户 ID 必须是唯一的,当前 IRtcChannel 中的 uid 复用 IRtcEngine 房间中的 uid。
  • 房间名对应 IRtcChannel 创建时的 channeId。
自从
V4.5.0
参数
[in]token安全认证签名(NERTC Token)。可设置为:
  • null。调试模式下可设置为 null。安全性不高,建议在产品正式上线前在云信控制台中将鉴权方式恢复为默认的安全模式。
  • 已获取的NERTC Token。安全模式下必须设置为获取到的 Token 。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
[in]uid用户的唯一标识 id,房间内每个用户的 uid 必须是唯一的。
uid 可选,默认为 0。如果不指定(即设为 0),SDK 会自动分配一个随机 uid,并在 ChannelOnJoinChannel 回调方法中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。
[in]channelOptions加入房间时设置一些特定的房间参数,详情参考RtcJoinChannelOptions
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ LeaveChannel()

abstract int nertc.IRtcChannel.LeaveChannel ( )
pure virtual

离开房间。
离开房间,即挂断或退出通话。
结束通话时,必须调用LeaveChannel结束通话,否则无法开始下一次通话。
成功调用该方法离开房间后,本地会触发ChannelOnLeaveChannel回调,远端会触发 ChannelOnUserLeft 回调。

注解
自从
V4.5.0
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ SetStatsObserver()

abstract int nertc.IRtcChannel.SetStatsObserver ( IMediaStatsObserver  observer)
pure virtual

注册统计信息观测器。

自从
V4.5.0
参数
[in]observer统计信息观测器
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ EnableAudioVolumeIndication()

abstract int nertc.IRtcChannel.EnableAudioVolumeIndication ( bool  enable,
ulong  interval,
bool  enableVad 
)
pure virtual

启用说话者音量提示。
该方法允许 SDK 定期向 App 反馈本地发流用户和瞬时音量最高的远端用户(最多 3 位)的音量相关信息,即当前谁在说话以及说话者的音量。
启用该方法后,只要房间内有发流用户,无论是否有人说话,SDK 都会在加入房间后根据预设的时间间隔触发ChannelOnRemoteAudioVolumeIndication回调。

参数
enable是否启用说话者音量提示。
interval指定音量提示的时间间隔,单位为毫秒。必须设置为 100 毫秒的整数倍值。
enableVad是否启用本地采集人声监测。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ EnableLocalAudio()

abstract int nertc.IRtcChannel.EnableLocalAudio ( RtcAudioStreamType  type,
bool  enabled 
)
pure virtual

开启/关闭本地音频采集
该方法可以重新开启本地语音功能,重新开始本地音频采集及处理。
该方法不影响接收或播放远端音频流。

注解
该方法与 MuteLocalAudioStream 的区别在于:
该方法设置内部引擎为启用状态,在 LeaveChannel 后仍然有效。
自从
V4.5.0
参数
[in]type音频通道类型。RtcAudioStreamType
[in]enabled
  • true: 重新开启本地语音功能,即开启本地语音采集或处理(默认)
  • false: 关闭本地语音功能,即停止本地语音采集或处理
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ MuteLocalAudioStream()

abstract int nertc.IRtcChannel.MuteLocalAudioStream ( RtcAudioStreamType  type,
bool  mute 
)
pure virtual

开关本地音频发送。该方法用于允许或禁止向网络发送本地音频流。

注解
  • 该方法不影响录音状态,因为并没有禁用录音设备。
  • 静音状态会在通话结束后被重置为非静音
自从
V4.5.0
参数
[in]type音频通道类型。RtcAudioStreamType
[in]mute静音/取消静音:
  • true: 静音本地音频
  • false: 取消静音本地音频(默认)
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ EnableLocalVideo()

abstract int nertc.IRtcChannel.EnableLocalVideo ( RtcVideoStreamType  type,
bool  enabled 
)
pure virtual

开启或关闭本地视频采集和渲染。
该方法启用本地视频采集功能。

注解
自从
V4.5.0
参数
[in]type视频通道类型。RtcVideoStreamType
[in]enabled是否启用本地视频采集和渲染:
  • true: 开启本地视频采集和渲染 (默认);
  • false: 关闭使用本地摄像头设备。关闭后,远端用户会接收不到本地用户的视频流;但本地用户依然可以接收远端用户的视频流。设置为 false 时,该方法不需要本地有摄像头。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ MuteLocalVideoStream()

abstract int nertc.IRtcChannel.MuteLocalVideoStream ( RtcVideoStreamType  type,
bool  mute 
)
pure virtual

取消或恢复发布本地视频流。
成功调用该方法后,远端会触发 ChannelOnUserVideoMute 回调。

注解
  • 调用该方法禁视频流时,SDK 不再发送本地视频流,但摄像头仍然处于工作状态。
  • 该方法在加入房间前后均可调用。
  • 若调用该方法取消发布本地视频流,通话结束后会被重置为默认状态,即默认发布本地视频流。
  • 该方法与 EnableLocalVideo (false) 的区别在于, EnableLocalVideo (false) 会关闭本地摄像头设备,MuteLocalVideoStream 不影响本地视频流采集,不禁用摄像头,且响应速度更快。
自从
V4.5.0
参数
[in]type视频通道类型。RtcVideoStreamType
[in]mute
  • true: 不发送本地视频流
  • false: 发送本地视频流(默认)
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ StartScreenCaptureByScreenRect()

abstract int nertc.IRtcChannel.StartScreenCaptureByScreenRect ( RtcRectangle  screenRect,
RtcRectangle  regionRect,
RtcScreenCaptureParameters  captureParams 
)
pure virtual

开启屏幕共享,共享范围为指定屏幕的指定区域。
调用该方法时,可以选择共享整个虚拟屏、指定屏幕,或虚拟屏、整个屏幕的某些区域范围。
此方法调用成功后,远端触发 ChannelOnUserSubStreamVideoStart 和 SetExcludeWindowList 回调。

注解
自从
V4.5.0
参数
screenRect指定待共享的屏幕相对于虚拟屏的位置。
regionRect指定待共享区域相对于整个屏幕屏幕的位置。如果设置的共享区域超出了屏幕的边界,则只共享屏幕内的内容;如果将 width 或 height 设为 0, 则共享整个屏幕。
captureParams屏幕共享的编码参数配置。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ StartScreenCaptureByDisplayId()

abstract int nertc.IRtcChannel.StartScreenCaptureByDisplayId ( ulong  displayId,
RtcRectangle  regionRect,
RtcScreenCaptureParameters  captureParams 
)
pure virtual

通过指定屏幕 ID 开启屏幕共享,屏幕共享内容以辅流形式发送。
此方法调用成功后,远端触发 ChannelOnUserSubStreamVideoStart 回调。

注解
自从
V4.5.0
参数
displayId指定待共享的屏幕 ID。开发者需要自行实现枚举屏幕 ID 的方法,并通过该参数指定需要共享的屏幕。
regionRect指定待共享的区域相对于整个窗口的位置。如果设置的共享区域超出了窗口的边界,则只共享窗口内的内容;如果宽或高为 0,则共享整个窗口。
captureParams屏幕共享的参数配置,包括码率、帧率、编码策略、屏蔽窗口列表等。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ StartScreenCaptureByWindowId()

abstract int nertc.IRtcChannel.StartScreenCaptureByWindowId ( IntPtr  windowId,
RtcRectangle  regionRect,
RtcScreenCaptureParameters  captureParams 
)
pure virtual

通过指定窗口 ID 开启屏幕共享,屏幕共享内容以辅流形式发送。
调用该方法时需要指定待共享的屏幕 ID,共享该屏幕的整体画面或指定区域。
此方法调用成功后:

  • Windows 平台远端触发 ChannelOnUserSubStreamVideoStop 和 ChannelOnScreenCaptureStatusChanged 回调。
  • macOS 平台远端触发 ChannelOnUserSubStreamVideoStop 回调。
    注解
  • 该方法适用于 Windows 和 macOS。
  • 该方法需要在加入房间后调用。
    自从
    V4.5.0
    参数
    windowId指定待共享的窗口 ID。
    regionRect指定待共享的区域相对于整个窗口的位置。如果设置的共享区域超出了窗口的边界,则只共享指定区域中窗口内的内容;如果宽或高为 0,则共享整个窗口。
    captureParams屏幕共享的参数配置,包括码率、帧率、编码策略、屏蔽窗口列表等。
    返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ UpdateScreenCaptureRegion()

abstract int nertc.IRtcChannel.UpdateScreenCaptureRegion ( RtcRectangle  regionRect)
pure virtual

在共享屏幕或窗口时,更新共享的区域。
在 Windows 平台中,远端会触发 ChannelOnScreenCaptureStatusChanged 回调。

自从
V4.5.0
参数
regionRect指定待共享的区域相对于整个窗口或屏幕的位置。如果设置的共享区域超出了边界,则只共享指定区域中,窗口或屏幕内的内容;如果宽或高为 0,则共享整个窗口或屏幕。
返回
  • 0: 方法调用成功。
  • 其他: 方法调用失败。

◆ SetScreenCaptureMouseCursor()

abstract int nertc.IRtcChannel.SetScreenCaptureMouseCursor ( bool  captureCursor)
pure virtual

在共享屏幕或窗口时,更新是否显示鼠标。

自从
V4.6.10
参数
capture_cursor屏幕共享时是否捕捉鼠标光标。
  • true:共享屏幕时显示鼠标。
  • false:共享屏幕时不显示鼠标。
返回
  • 0: 方法调用成功。
  • 其他: 方法调用失败

◆ StopScreenCapture()

abstract int nertc.IRtcChannel.StopScreenCapture ( )
pure virtual

停止屏幕共享。
此方法调用成功后:

  • Windows 平台远端触发 ChannelOnUserSubStreamVideoStop 和 ChannelOnScreenCaptureStatusChanged 回调。
  • macOS 平台远端触发 ChannelOnUserSubStreamVideoStop 回调。
    自从
    V4.5.0
    返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ PauseScreenCapture()

abstract int nertc.IRtcChannel.PauseScreenCapture ( )
pure virtual

暂停屏幕共享。

自从
V4.5.0
返回
  • 0: 方法调用成功
  • 其他: 方法调用失败

◆ ResumeScreenCapture()

abstract int nertc.IRtcChannel.ResumeScreenCapture ( )
pure virtual

恢复屏幕共享。
在 Windows 平台中,远端会触发 ChannelOnScreenCaptureStatusChanged 回调。

自从
V4.5.0
返回
  • 0: 方法调用成功
  • 其他: 方法调用失败

◆ SetExcludeWindowList()

abstract int nertc.IRtcChannel.SetExcludeWindowList ( IntPtr[]  windowList)
pure virtual

设置共享整个屏幕或屏幕指定区域时,需要屏蔽的窗口列表。
开启屏幕共享时,可以通过 RtcScreenCaptureParameters 设置需要屏蔽的窗口列表;在 Windows 平台中,开发者可以在开启屏幕共享后,通过此方法动态调整需要屏蔽的窗口列表。被屏蔽的窗口不会显示在屏幕共享区域中。

注解
  • 在 Windows 平台中,该接口在屏幕共享过程中可动态调用;在 macOS 平台中,该接口需要在开启屏幕共享之前,即 StartScreenCaptureByDisplayId 之前调用。
  • 在 Windows 平台中,某些窗口在被屏蔽之后,如果被置于图层最上层,此窗口图像可能会黑屏。此时会触发 ChannelOnScreenCaptureStatusChanged.kScreenCaptureStatusCovered 回调,建议应用层在触发此回调时提醒用户将待分享的窗口置于最上层。
自从
V4.5.0
参数
windowList需要屏蔽的窗口 ID 列表。
返回
  • 0: 方法调用成功
  • 其他: 方法调用失败

◆ UpdateScreenCaptureParameters()

abstract int nertc.IRtcChannel.UpdateScreenCaptureParameters ( RtcScreenCaptureParameters  captureParams)
pure virtual

更新屏幕共享参数。
开始共享屏幕或窗口后,动态更新采集帧率,目标码率,编码分辨率等屏幕共享相关参数。

自从
V4.6.20
调用时机
请在加入房间并成功开启屏幕共享后调用该方法。
注解
  • 调用该方法会重新启动屏幕共享,因此建议不要频繁调用。
  • 可以通过该方法动态设置是否捕捉鼠标(capture_mouse_cursor)和设置排除窗口(excluded_window_list,excluded_window_count),同时这两项设置也可以通过 SetScreenCaptureMouseCursor 和 setExcludeWindowList 方法实现。
参数说明
参数名称 类型 描述
captureParams RtcScreenCaptureParameters 屏幕共享编码参数配置。
示例代码
//调用该方法时,需要维护一个 RtcScreenCaptureParameters captureParams 变量记录当前设置。更新设置的时候:
var captureParams = new RtcScreenCaptureParameters();
captureParams.field1 = new_value1;
captureParams.field2 = new_value2;
...
_rtcEngine?.UpdateScreenCaptureParameters(captureParams);
相关回调
成功调用该方法后,会触发 ChannelOnScreenCaptureStatusChanged 回调。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30005(kErrorErrInvalidState):多房间状态错误。
    • 30021(kNERtcErrDesktopCaptureInvalidParam):传入的参数无效。
    • 30101(kNERtcErrChannelNotJoined):未加入房间。

◆ SetupLocalVideoCanvas()

abstract int nertc.IRtcChannel.SetupLocalVideoCanvas ( RtcVideoStreamType  type,
RtcVideoCanvas  canvas 
)
pure virtual

设置本地视图。
该方法设置本地视频显示信息。只影响本地用户看到的视频画面,不影响远端。
App 通过调用此接口绑定本地视频流的显示视窗(view)。 在 App 开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入房间。

自从
V4.5.0
注解
mac端若使用外部渲染,必须在 SDK 初始化时设置。
参数
[in]type视频通道类型。RtcVideoStreamType
[in]canvas视频画布信息
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ SetLocalRenderMode()

abstract int nertc.IRtcChannel.SetLocalRenderMode ( RtcVideoStreamType  type,
RtcVideoScalingMode  scalingMode 
)
pure virtual

设置本地视图显示模式。 该方法设置本地视图显示模式。 App 可以多次调用此方法更改显示模式。

注解
在打开屏幕共享前必须设置本地辅流画布。
自从
V4.5.0
参数
[in]type视频通道类型。RtcVideoStreamType
[in]scalingMode视频显示模式: RtcVideoScalingMode
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ SetLocalVideoMirrorMode()

abstract int nertc.IRtcChannel.SetLocalVideoMirrorMode ( RtcVideoStreamType  type,
RtcVideoMirrorMode  mirrorMode 
)
pure virtual

设置本地视频镜像模式。 该方法用于设置本地视频是否开启镜像模式,即画面是否左右翻转。 本地的视频镜像模式仅影响本地用户所见,不影响远端用户所见。App 可以多次调用此方法更改镜像模式。

自从
V4.5.0
参数
[in]type视频通道类型。RtcVideoStreamType
[in]mirrorMode视频镜像模式。详细信息请参考 RtcVideoMirrorMode
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ SetupRemoteVideoCanvas()

abstract int nertc.IRtcChannel.SetupRemoteVideoCanvas ( ulong  uid,
RtcVideoStreamType  type,
RtcVideoCanvas  canvas 
)
pure virtual

设置远端用户视图。
该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。

注解
  • 调用该接口时需要指定远端视频的 uid,一般可以在用户加入后设置好。
  • 如果 App 无法事先知道对方的用户 ID,可以在 APP 收到 ChannelOnUserJoined 事件时设置。- 解除某个用户的绑定视图可以把 canvas 设置为空。
  • 退出房间后,SDK 会清除远程用户和视图的绑定关系。
自从
V4.5.0
参数
[in]uid远端用户 ID。
[in]type视频通道类型。RtcVideoStreamType
[in]canvas视频画布信息
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ SetRemoteRenderMode()

abstract int nertc.IRtcChannel.SetRemoteRenderMode ( ulong  uid,
RtcVideoStreamType  type,
RtcVideoScalingMode  scalingMode 
)
pure virtual

设置远端视图显示模式。 该方法设置远端视图显示模式。App 可以多次调用此方法更改显示模式。

自从
V4.5.0
参数
[in]uid远端用户 ID。
[in]type视频通道类型。RtcVideoStreamType
[in]scalingMode视频显示模式: RtcVideoScalingMode
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ SetClientRole()

abstract int nertc.IRtcChannel.SetClientRole ( RtcClientRole  role)
pure virtual

在直播场景中设置用户角色。
用户角色支持设置为主播或观众,主播和观众的权限不同。

  • 主播:可以开关摄像头等设备、可以发布流、可以操作互动直播推流相关接口、上下线对其他房间内用户可见。
  • 观众:不可以开关摄像头等设备、不可以发布流、不可以操作互动直播推流相关接口、上下线对其他房间内用户不可见。
注解
  • 默认情况下用户以主播角色加入房间。
  • 在加入房间前,用户可以调用本接口切换本端角色为观众。在加入房间后,用户也可以通过本接口切换用户角色。
  • 用户切换为观众角色时,SDK 会自动关闭音视频设备。
自从
V4.5.0
参数
[in]role用户角色。 RtcClientRole
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ SetLocalMediaPriority()

abstract int nertc.IRtcChannel.SetLocalMediaPriority ( int  priority,
bool  isPreemptive 
)
pure virtual

设置本地用户的媒体流优先级。
如果某个用户的优先级为高,那么该用户媒体流的优先级就会高于其他用户,弱网环境下 SDK 会优先保证其他用户收到的、高优先级用户的媒体流的质量。

注解
  • 请在加入房间( JoinChannel )前调用此方法。
  • 快速切换房间 ( IRtcEngine.SwitchChannel ) 后,媒体优先级会恢复为默认值,即普通优先级。
  • 一个音视频房间中只有一个高优先级的用户。建议房间中只有一位用户调用 SetLocalMediaPriority 将本端媒体流设为高优先级,否则需要开启抢占模式,保证本地用户的高优先级设置生效。
自从
V4.5.0
参数
priority本地用户的媒体流优先级,默认为 kNERtcMediaPriorityNormal 。详细信息请参考 RtcMediaPriorityType
isPreemptive是否开启抢占模式。默认为 false,即不开启。
  • 抢占模式开启后,本地用户可以抢占其他用户的高优先级,被抢占的用户的媒体优先级变为普通优先级,在抢占者退出房间后,其他用户的优先级仍旧维持普通优先级。
  • 抢占模式关闭时,如果房间中已有高优先级用户,则本地用户的高优先级设置不生效,仍旧为普通优先级。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ GetConnectionState()

abstract RtcConnectionStateType nertc.IRtcChannel.GetConnectionState ( )
pure virtual

获取当前网络状态。

自从
V4.5.0
返回
当前网络状态。 RtcConnectionStateType .

◆ SetCameraCaptureConfig()

abstract int nertc.IRtcChannel.SetCameraCaptureConfig ( RtcVideoStreamType  type,
RtcCameraCaptureConfig  config 
)
pure virtual

设置本地摄像头的视频主流或辅流采集配置。
通过此接口可以设置本地摄像头采集的主流或辅流视频宽度、高度、旋转角度等。

自从
V4.6.20
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
业务场景
在视频通话或直播中,SDK 自动控制摄像头的输出参数。默认情况下,SDK 会根据用户该接口的配置匹配最合适的分辨率进行采集。但是在部分业务场景中,如果采集画面质量无法满足实际需求,可以调用该接口调整摄像头的采集配置。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 调用该接口设置成功后,会自动重启摄像头采集模块。
参数说明
参数名称 类型 描述
type RtcVideoStreamType 视频通道类型:
  • kNERtcVideoStreamMain:主流。
  • kNERtcVideoStreamSub:辅流。
captureConfig RtcCameraCaptureConfig 本地摄像头采集配置。
示例代码
//设置本地摄像头主流采集配置
RtcVideoStreamType type = RtcVideoStreamType.kNERTCVideoStreamMain;
var config = new RtcCameraCaptureConfig();
config.captureWidth = 1920; // 编码分辨率的宽
config.captureHeight = 1080; // 编码分辨率的高
_rtcEngine?.SetCameraCaptureConfig(type, config);
//设置本地摄像头辅流采集配置
RtcVideoStreamType type = RtcVideoStreamType.kNERTCVideoStreamSub;
var config = new RtcCameraCaptureConfig();
config.captureWidth = 1920; // 编码分辨率的宽
config.captureHeight = 1080; // 编码分辨率的高
_rtcEngine?.SetCameraCaptureConfig(type, config);
RtcVideoStreamType
Definition: RtcBase.cs:6493
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。

◆ SetVideoConfig()

abstract int nertc.IRtcChannel.SetVideoConfig ( RtcVideoStreamType  type,
RtcVideoConfig  config 
)
pure virtual

设置视频编码属性。
通过此接口可以设置视频主流或辅流的编码分辨率、裁剪模式、码率、帧率、带宽受限时的视频编码降级偏好、编码的镜像模式、编码的方向模式参数,详细信息请参考设置视频属性

自从
V4.6.20
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 每个属性对应一套视频参数,例如分辨率、帧率、码率等。所有设置的参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率、帧率或码率的最大值时,会取最接近最大值的那个值。
  • 此接口为全量参数配置接口,重复调用此接口时,SDK 会刷新此前的所有参数配置,以最新的传参为准。所以每次修改配置时都需要设置所有参数,未设置的参数将取默认值。
参数说明
参数名称 类型 描述
type RtcVideoStreamType 视频通道类型:
  • kNERTCVideoStreamMain:主流。
  • kNERTCVideoStreamSub:辅流。
config RtcVideoConfig 视频编码属性配置。
示例代码
var config = new RtcVideoConfig();
config.width = 1920; // 编码分辨率的宽
config.height = 1080; // 编码分辨率的高
config.mirrorMode = RtcVideoMirrorMode.kNERtcVideoMirrorModeAuto; // 视频镜像模式
config.orientationMode = RtcVideoOrientationMode.kNERtcVideoOutputOrientationModeAdaptative; // 视频旋转的方向模式。
config.maxProfile = RtcVideoProfileType.kNERtcVideoProfileHD1080P; // 视频编码配置
config.cropMode_ = RtcVideoCropMode.kNERtcVideoCropModeDefault;//裁剪模式
config.bitrate = 0; // 视频编码的码率
config.minBitrate = 0;//视频编码的最小码率
config.framerate = RtcVideoFramerateType.kNERtcVideoFramerateFps30; // 视频编码的帧率
config.minFramerate = 2;// 视频编码的最小帧率
config.degradationPreference = RtcDegradationPreference.kNERtcDegradationDefault;// 带宽受限时的视频编码降级偏好
_rtcEngine?.SetVideoConfig(RtcVideoStreamType.kNERTCVideoStreamMain, config);
RtcVideoCropMode
Definition: RtcBase.cs:4687
RtcVideoMirrorMode
Definition: RtcBase.cs:3446
RtcDegradationPreference
Definition: RtcBase.cs:4810
RtcVideoOrientationMode
Definition: RtcBase.cs:3486
RtcVideoFramerateType
Definition: RtcBase.cs:4735
RtcVideoProfileType
Definition: RtcBase.cs:2931
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30005(kNERtcErrInvalidState):引擎尚未初始化。
    • 30300:Transiver 未找到。

◆ EnableDualStreamMode()

abstract int nertc.IRtcChannel.EnableDualStreamMode ( bool  enable)
pure virtual

设置是否开启视频大小流模式。
该方法设置单流或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。

注解
  • 该方法只对摄像头数据生效,自定义输入、屏幕共享等视频流无效。
  • 该方法在加入房间前后都能调用。设置后,会在摄像头重启后生效。
自从
V4.5.0
参数
[in]enable指定是否开启双流模式。
  • true: (默认)开启双流模式。
  • false: 关闭双流模式。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ SubscribeRemoteAudioStream()

abstract int nertc.IRtcChannel.SubscribeRemoteAudioStream ( RtcAudioStreamType  streamType,
ulong  uid,
bool  subscribe 
)
pure virtual

取消或恢复订阅指定远端用户音频流。
加入房间时,默认订阅所有远端用户的音频流,您可以通过此方法取消或恢复订阅指定远端用户的音频流。

注解
当 kNERtcKeyAutoSubscribeAudio 默认打开时,用户不能手动修改音频订阅状态
自从
V4.5.0
参数
[in]streamType音频流类型: kNERtcAudioStreamTypeMain主流音频,kNERtcAudioStreamTypeSub辅流音频。
[in]uid指定用户的 ID。
[in]subscribe是否订阅远端用户音频流。
  • true: 订阅指定音频流(默认)。
  • false: 取消订阅指定音频流。
返回
  • 0: 方法调用成功。
  • 30005: 状态异常,可能是自动订阅打开,导致该接口无效。
  • 其他: 方法调用失败。

◆ SubscribeAllRemoteAudioStream()

abstract int nertc.IRtcChannel.SubscribeAllRemoteAudioStream ( bool  subscribe)
pure virtual

取消或恢复订阅所有远端用户音频流。

注解
  • 加入房间时,默认订阅所有远端用户的音频,此时请勿调用 SubscribeAllRemoteAudioStream 重复订阅所有远端用户的音频流。
  • 该方法需要在加入房间后调用,对后续加入的用户也同样生效。
自从
V4.5.0
参数
subscribe是否取消订阅所有远端用户的音频流。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ SetAudioSubscribeOnlyBy()

abstract int nertc.IRtcChannel.SetAudioSubscribeOnlyBy ( ulong[]  uids)
pure virtual

设置自己的音频只能被房间内指定的人订阅。
默认房间所有其他人都可以订阅自己的音频。

注解
  • 此接口需要在加入房间成功后调用。
  • 对于调用接口时不在房间的 uid 不生效。
自从
V4.6.10
参数
[in]uids可订阅自己音频的用户uid 列表。
注解
此列表为全量列表。如果列表为空或 null,表示其他所有人均可订阅自己的音频。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ SetSubscribeAudioAllowList()

abstract int nertc.IRtcChannel.SetSubscribeAudioAllowList ( ulong[]  uids)
pure virtual

你可以调用该方法指定只订阅的音频流。

注解
  • 此接口需要在加入房间成功后调用。
  • 对于调用接口时不在房间的 uid 不生效。
自从
V5.4.101
参数
[in]uids只订阅此 用户uid列表 的音频。
注解
此列表为全量列表。如果列表为空或 null,取消订阅白名单。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ SetSubscribeAudioBlockList()

abstract int nertc.IRtcChannel.SetSubscribeAudioBlockList ( ulong[]  uids)
pure virtual

你可以调用该方法指定不订阅的音频流。

注解
  • 此接口需要在加入房间成功后调用。
  • 对于调用接口时不在房间的 uid 不生效。
自从
V5.4.101
参数
[in]uids不订阅此 用户uid列表 的音频。
注解
此列表为全量列表。如果列表为空或 null,取消订阅黑名单。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ SubscribeRemoteVideoStream()

abstract int nertc.IRtcChannel.SubscribeRemoteVideoStream ( ulong  uid,
RtcVideoStreamType  type,
RtcRemoteVideoStreamType  streamType,
bool  subscribe 
)
pure virtual

订阅或取消订阅指定远端用户的视频流。

  • 用户加入房间之后,默认不订阅远端用户的视频流,如果希望看到指定远端用户的视频,可以在监听到对方加入房间或发布视频流之后,通过此方法订阅该用户的视频流。
  • 该方法需要在加入房间后调用。
    自从
    V4.5.0
    参数
    [in]uid指定用户的用户 ID。
    [in]type指定视频通道类型. RtcVideoStreamType
    [in]streamType订阅的视频流类型。 RtcRemoteVideoStreamType
    [in]subscribe
  • true: (默认)订阅指定视频流。
  • false: 不订阅指定视频流。
    返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ AddLiveStreamTask()

abstract int nertc.IRtcChannel.AddLiveStreamTask ( RtcLiveStreamTaskInfo  info)
pure virtual

添加房间推流任务,成功添加后当前用户可以收到该直播流的状态通知。

注解
  • 该方法仅适用直播场景。
  • 请在房间内调用该方法,该方法在通话中有效。
  • 该方法每次只能增加一路旁路推流地址。如需推送多路流,则需多次调用该方法。同一个音视频房间(即同一个 channelId)可以创建 3 个不同的推流任务。
  • 成功添加推流任务后,当前用户会收到该直播流的相关状态通知。
自从
V4.5.0
参数
[in]info直播任务信息。详细信息请参考 RtcLiveStreamTaskInfo
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ UpdateLiveStreamTask()

abstract int nertc.IRtcChannel.UpdateLiveStreamTask ( RtcLiveStreamTaskInfo  info)
pure virtual

更新修改房间推流任务。

注解
  • 该方法仅适用直播场景。
  • 请在房间内调用该方法,该方法在通话中有效。
自从
V4.5.0
参数
[in]info直播任务信息。详细信息请参考 RtcLiveStreamTaskInfo
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ RemoveLiveStreamTask()

abstract int nertc.IRtcChannel.RemoveLiveStreamTask ( string  taskId)
pure virtual

删除房间推流任务。

注解
  • 该方法仅适用直播场景。
  • 请在房间内调用该方法,该方法在通话中有效。
  • 通话结束,房间成员全部离开房间后,推流任务会自动删除。如果房间内还有用户存在,则需要创建推流任务的用户删除推流任务。
自从
V4.5.0
参数
[in]taskId直播任务 ID。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ SendSEIMsg()

abstract int nertc.IRtcChannel.SendSEIMsg ( byte[]  data,
int  length,
RtcVideoStreamType  type 
)
pure virtual

发送媒体补充增强信息(SEI)。
在本端推流传输视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 ChannelOnRecvSEIMessage 的回调获取 SEI 内容。

  • 调用时机:视频流(主流)开启后,可调用此函数。
  • 数据长度限制: SEI 最大数据长度为 4096 字节,超限会发送失败。如果频繁发送大量数据会导致视频码率增大,可能会导致视频画质下降甚至卡顿。
  • 发送频率限制:最高为视频发送的帧率,建议不超过 10 次/秒。
  • 生效时间:调用本接口之后,最快在下一帧视频数据帧之后发送 SEI 数据,最慢在接下来的 5 帧视频之后发送。
注解
  • SEI 数据跟随视频帧发送,由于在弱网环境下可能丢帧,SEI 数据也可能随之丢失,所以建议在发送频率限制之内多次发送,保证接收端收到的概率。
  • 调用本接口时,默认使用主流通道发送 SEI。
自从
V4.5.0
参数
data自定义 SEI 数据。
length自定义 SEI 数据长度,最大不超过 4096 字节。
type发送 SEI 时,使用的流通道类型。详细信息请参考 RtcVideoStreamType
返回
操作返回值,成功则返回 0
  • 成功: 成功进入待发送队列,会在最近的视频帧之后发送该数据
  • 失败: 数据被限制发送,可能发送的频率太高,队列已经满了,或者数据大小超过最大值 4k

◆ TakeLocalSnapshot()

abstract int nertc.IRtcChannel.TakeLocalSnapshot ( RtcVideoStreamType  streamType,
RtcTakeSnapshotCallback  callback 
)
pure virtual

本地视频画面截图。
调用此方法截取本地主流或本地辅流的视频画面,并通过 RtcTakeSnapshotCallback 回调返回截图画面的数据。

注解
  • 本地主流截图,需要在 StartVideoPreview 之后 或者 EnableLocalVideoJoinChannel 成功之后调用。
  • 本地辅流截图,需要在 JoinChannel 成功并开启屏幕共享之后调用。
  • 同时设置文字、时间戳或图片水印时,如果不同类型的水印位置有重叠,会按照图片、文本、时间戳的顺序进行图层覆盖。
自从
V4.5.0
参数
streamType截图的视频流类型。支持设置为主流或辅流。详细信息请参考 RtcVideoStreamType
callback截图回调。详细信息请参考 RtcTakeSnapshotCallback
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ TakeRemoteSnapshot()

abstract int nertc.IRtcChannel.TakeRemoteSnapshot ( ulong  uid,
RtcVideoStreamType  streamType,
RtcTakeSnapshotCallback  callback 
)
pure virtual

远端视频画面截图。
调用此方法截取指定 uid 远端主流和远端辅流的视频画面,并通过 RtcTakeSnapshotCallback 回调返回截图画面的数据。

注解
  • takeRemoteSnapshot 需要在收到 ChannelOnUserVideoStart 与 ChannelOnUserSubStreamVideoStart 回调之后调用。
  • 同时设置文字、时间戳或图片水印时,如果不同类型的水印位置有重叠,会按照图片、文本、时间戳的顺序进行图层覆盖。
自从
V4.5.0
参数
uid远端用户 ID。
streamType截图的视频流类型。支持设置为主流或辅流。详细信息请参考 RtcVideoStreamType
callback截图回调。详细信息请参考 RtcTakeSnapshotCallback
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ AdjustRecordingSignalVolume()

abstract int nertc.IRtcChannel.AdjustRecordingSignalVolume ( int  volume)
pure virtual

调节采集信号音量。

注解
该方法仅调节应用程序中的采集信号音量,不修改设备音量。如果需要修改设备音量,请查看设备管理相关接口。
参数
[in]volume采集录音音量,取值范围为 [0, 400]。其中:
  • 0: 静音;
  • 100: 原始音量;
  • 400: 最大可为原始音量的 4 倍(自带溢出保护)。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ AdjustPlaybackSignalVolume()

abstract int nertc.IRtcChannel.AdjustPlaybackSignalVolume ( int  volume)
pure virtual

调节本地播放音量。

注解
该方法仅调节应用程序中音量,不修改设备音量。如果需要修改设备音量,请查看设备管理相关接口。
参数
[in]volume播放音量。取值范围为 [0, 400]。其中:
  • 0: 静音;
  • 100: 原始音量;
  • 400: 最大可为原始音量的 4 倍(自带溢出保护)。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ AdjustUserPlaybackSignalVolume()

abstract int nertc.IRtcChannel.AdjustUserPlaybackSignalVolume ( ulong  uid,
int  volume 
)
pure virtual

调节本地播放的指定远端用户的信号音量。
加入房间后,您可以多次调用该方法设置本地播放的不同远端用户的音量;也可以反复调节本地播放的某个远端用户的音量。

注解
  • 请在成功加入房间后调用该方法。
  • 该方法在本次通话中有效。如果远端用户中途退出房间,则再次加入此房间时仍旧维持该设置,通话结束后设置失效。
  • 该方法调节的是本地播放的指定远端用户混音后的音量,且每次只能调整一位远端用户。若需调整多位远端用户在本地播放的音量,则需多次调用该方法。
    自从
    V4.5.0
    参数
    uid远端用户 ID。
    volume播放音量,取值范围为 [0,100]。
    • 0:静音。
    • 100:原始音量。
    返回
    • 0: 方法调用成功;
    • 其他: 方法调用失败。

◆ AdjustChannelPlaybackSignalVolume()

abstract int nertc.IRtcChannel.AdjustChannelPlaybackSignalVolume ( uint  volume)
pure virtual

调节本地播放的指定房间的所有远端用户的信号音量。
通过此接口可以实现在通话过程中随时调节指定房间内的所有远端用户在本地播放的混音音量。

自从
V4.6.50
调用时机
请在引擎初始化之后调用此接口,该方法在加入房间前后都可调用。
注解
  • 该方法设置内部引擎为启用状态,在 LeaveChannel 后失效,但在本次通话过程中有效
参数说明
参数名称 类型 描述
volume uint 播放音量,取值范围为 [0,400]。
  • 0:静音。
  • 100:原始音量。
  • 400:最大可为原始音量的 4 倍(自带溢出保护)。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30005(kNERtcErrInvalidState):状态错误,比如引擎未初始化。

◆ StartChannelMediaRelay()

abstract int nertc.IRtcChannel.StartChannelMediaRelay ( RtcChannelMediaRelayConfig  config)
pure virtual

开始跨房间媒体流转发。

  • 该方法可用于实现跨房间连麦等场景。支持同时转发到 4 个房间,同一个房间可以有多个转发进来的媒体流。
  • 成功调用该方法后,SDK 会触发 ChannelOnMediaRelayStateChangedChannelOnMediaRelayEvent 回调,并在回调中报告当前的跨房间媒体流转发状态和事件。
    注解
  • 请在成功加入房间后调用该方法。调用此方法前需要通过 RtcChannelMediaRelayConfig 中的 destInfos 设置目标房间。
  • 该方法仅对直播场景下的主播角色有效。
  • 成功调用该方法后,若您想再次调用该方法,必须先调用 StopChannelMediaRelay 方法退出当前的转发状态。
  • 成功开始跨房间转发媒体流后,如果您需要修改目标房间,例如添加或删减目标房间等,可以调用方法 UpdateChannelMediaRelay 更新目标房间信息。
    自从
    V4.5.0
    参数
    config跨房间媒体流转发参数配置信息。
    返回
    成功返回0,其他则失败

◆ UpdateChannelMediaRelay()

abstract int nertc.IRtcChannel.UpdateChannelMediaRelay ( RtcChannelMediaRelayConfig  config)
pure virtual

更新媒体流转发的目标房间。
成功开始跨房间转发媒体流后,如果你希望将流转发到多个目标房间,或退出当前的转发房间,可以调用该方法。

  • 成功开始跨房间转发媒体流后,如果您需要修改目标房间,例如添加或删减目标房间等,可以调用此方法。
  • 成功调用该方法后,SDK 会触发 ChannelOnMediaRelayStateChangedChannelOnMediaRelayEvent 回调,并在回调中报告当前的跨房间媒体流转发状态和事件。
    注解
    请在加入房间并成功调用 StartChannelMediaRelay 开始跨房间媒体流转发后,调用此方法。调用此方法前需要通过 RtcChannelMediaRelayConfig 中的 destInfos 设置目标房间。
    自从
    V4.5.0
    参数
    config目标房间配置信息
    返回
    成功返回0,其他则失败

◆ StopChannelMediaRelay()

abstract int nertc.IRtcChannel.StopChannelMediaRelay ( )
pure virtual

停止跨房间媒体流转发。
主播离开房间时,跨房间媒体流转发自动停止,您也可以在需要的时候随时调用 StopChannelMediaRelay 方法,此时主播会退出所有目标房间。

◆ SetLocalPublishFallbackOption()

abstract int nertc.IRtcChannel.SetLocalPublishFallbackOption ( RtcStreamFallbackOption  option)
pure virtual

设置弱网条件下发布的音视频流回退选项。
在网络不理想的环境下,发布的音视频质量都会下降。使用该接口并将 option 设置为 kNERtcStreamFallbackAudioOnly 后:

  • SDK 会在上行弱网且音视频质量严重受影响时,自动关断视频流,尽量保证音频质量。
  • 同时 SDK 会持续监控网络质量,并在网络质量改善时恢复音视频流。
  • 当本地发布的音视频流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发本地发布的媒体流已回退为音频流 ChannelOnPublishFallbackToAudioOnly 回调。
注解
请在加入房间(joinChannel)前调用此方法。
自从
V4.5.0
参数
option发布音视频流的回退选项,默认为不开启回退 kNERtcStreamFallbackAudioOnly。详细信息请参考 RtcStreamFallbackOption
返回
0
方法调用成功,其他调用失败

◆ SetRemoteSubscribeFallbackOption()

abstract int nertc.IRtcChannel.SetRemoteSubscribeFallbackOption ( RtcStreamFallbackOption  option)
pure virtual

设置弱网条件下订阅的音视频流回退选项。
弱网环境下,订阅的音视频质量会下降。使用该接口并将 option 设置为 kNERtcStreamFallbackVideoStreamLow 或者 kNERtcStreamFallbackAudioOnly 后:

  • SDK 会在下行弱网且音视频质量严重受影响时,将视频流切换为小流,或关断视频流,从而保证或提高通信质量。
  • SDK 会持续监控网络质量,并在网络质量改善时自动恢复音视频流。
  • 当远端订阅流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发远端订阅流已回退为音频流 ChannelOnSubscribeFallbackToAudioOnly 回调。
注解
请在加入房间( JoinChannel )前调用此方法。
自从
V4.5.0
参数
option订阅音视频流的回退选项,默认为弱网时回退到视频小流 kNERtcStreamFallbackVideoStreamLow。详细信息请参考 RtcStreamFallbackOption
返回
0
方法调用成功,其他调用失败

◆ SetRemoteHighPriorityAudioStream()

abstract int nertc.IRtcChannel.SetRemoteHighPriorityAudioStream ( bool  enabled,
ulong  uid 
)
pure virtual

设置远端用户音频流为高优先级。 支持在音频自动订阅的情况下,设置某一个远端用户的音频为最高优先级,可以优先听到该用户的音频。

注解
  • 该接口需要通话中设置,并需要自动订阅打开(默认打开)。
  • 该接口只能设置一个用户的优先级,后设置的会覆盖之前的设置。
  • 该接口通话结束后,优先级设置重置。
参数
[in]enabled是否设置音频订阅优先级。
  • true:设置音频订阅优先级。
  • false:取消设置音频订阅优先级。
[in]uid用户 ID
返回
  • 0: 方法调用成功。
  • 其他: 方法调用失败。

◆ SetExternalVideoSource()

abstract int nertc.IRtcChannel.SetExternalVideoSource ( RtcVideoStreamType  type,
bool  enabled 
)
pure virtual

开启或关闭外部视频源数据输入。
在Windows平台,通过该方法启用外部视频数据输入功能时,需要通过 IVideoDeviceManager.SetDevice 设置 RtcConstants.kNERtcExternalVideoDeviceID 为外部视频输入源 ID。其他平台则不需要

注解
该方法设置内部引擎为启用状态,在 LeaveChannel 后仍然有效。
参数
[in]type视频流通道类型 RtcVideoStreamType
  • kNERTCVideoStreamMain,打开或关闭主流通道的外部源
  • kNERTCVideoStreamSub, 打开或关闭辅流通道的外部源
[in]enabled是否外部视频源数据输入:
  • true: 开启外部视频源数据输入;
  • false: 关闭外部视频源数据输入 (默认)。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ PushExternalVideoFrame()

abstract int nertc.IRtcChannel.PushExternalVideoFrame ( RtcVideoStreamType  type,
RtcExternalVideoFrame  frame 
)
pure virtual

推送外部视频帧。
该方法主动将视频帧数据用 NERtcVideoFrame 类封装后传递给 SDK。 请确保在你调用本方法前已调用 setExternalVideoSource,并将参数设为 true,否则调用本方法后会一直报错。

注解
该方法设置内部引擎为启用状态,在 leaveChannel 后不再有效。
参数
[in]type视频流通道类型 RtcVideoStreamType
  • kNERTCVideoStreamMain,打开或关闭主流通道的外部源
  • kNERTCVideoStreamSub, 打开或关闭辅流通道的外部源
[in]frame视频帧数据。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ EnableMediaPublish()

abstract int nertc.IRtcChannel.EnableMediaPublish ( bool  enabled,
RtcMediaPubType  mediaType 
)
pure virtual

开启或关闭本地媒体流(主流)的发送。
该方法用于开始或停止向网络发送本地音频或视频数据。
该方法不影响接收或播放远端媒体流,也不会影响本地音频或视频的采集状态。

自从
V4.6.10
注解
  • 该方法暂时仅支持控制音频流的发送。
  • 该方法在加入房间前后均可调用。
  • 停止发送媒体流的状态会在通话结束后被重置为允许发送。
  • 成功调用该方法切换本地用户的发流状态后,房间内其他用户会收到 ChannelOnUserAudioStart(开启发送音频)或 ChannelOnUserAudioStop(停止发送音频)的回调。
相关接口
  • MuteLocalAudioStream
    • 在需要开启本地音频采集(监测本地用户音量)但不发送音频流的情况下,您也可以调用 MuteLocalAudioStream(true) 方法。
    • 两者的差异在于, MuteLocalAudioStream(true) 仍然保持与服务器的音频通道连接,而 EnableMediaPublish(false) 表示断开此通道,因此若您的实际业务场景为多人并发的大房间,建议您调用 EnableMediaPublish 方法。
参数
enabled是否发布本地媒体流。
  • true(默认):发布本地媒体流。
  • false:不发布本地媒体流。
mediaType媒体发布类型,暂时仅支持音频。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ UpdatePermissionKey()

abstract int nertc.IRtcChannel.UpdatePermissionKey ( string  key)
pure virtual

更新权限密钥。

  • 通过本接口可以实现当用户权限被变更,或者收到权限密钥即将过期的回调 onPermissionKeyWillExpire 时,更新权限密钥。
    自从
    V4.6.29
    使用前提
    请确保已开通高级 Token 鉴权功能,具体请联系网易云信商务经理。
    调用时机
    请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
    业务场景
    适用于变更指定用户加入、创建房间或上下麦时发布流相关权限的场景。
    参数说明
    参数名称 类型 描述
    key const char* 新的权限密钥。

    示例代码
    if (rtc_engine_) {
    std::string key;//向服务器请求得到的权限key,具体请参考官方文档的高级 Token 鉴权章节。</a>
    rtc_engine_->updatePermissionKey(key.c_str())); if (kNERtcNoError != res) {
    }
    相关回调
    调用此接口成功更新权限密钥后会触发 ChannelOnUpdatePermissionKey 回调。
    返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30003(kNERtcErrInvalidParam):参数错误,比如 key 无效。
    • 30005(kNERtcErrInvalidState):当前状态不支持的操作,比如引擎尚未初始化。

◆ ReportCustomEvent()

abstract int nertc.IRtcChannel.ReportCustomEvent ( string  eventName,
string  customIdentify,
string  parameters 
)
pure virtual

上报自定义事件

参数
eventName事件名 不能为空
customIdentify自定义标识,比如产品或业务类型,如不需要填null
parameters参数键值对 ,参数值支持String 及java基本类型(int 、bool....) , 如不需要填null
返回
操作返回值,成功则返回 0

◆ SetRangeAudioMode()

abstract int nertc.IRtcChannel.SetRangeAudioMode ( RtcRangeAudioMode  mode)
pure virtual

设置范围语音模式

注解
此接口在加入房间前后均可调用。
参数
mode范围语音模式
返回
操作返回值,成功则返回 0

◆ SetRangeAudioTeamID()

abstract int nertc.IRtcChannel.SetRangeAudioTeamID ( int  teamID)
pure virtual

设置范围语音小队

注解
此接口在加入房间前后均可调用。
参数
teamID小队ID
返回
操作返回值,成功则返回 0

◆ SetAudioRecvRange()

abstract int nertc.IRtcChannel.SetAudioRecvRange ( int  audibleDistance,
int  conversationalDistance,
RtcDistanceRolloffModel  rollOff 
)
pure virtual

引擎3D音效算法距离范围设置

注解
  • 此接口在加入房间前后均可调用
  • 若要使用范围语音或3D音效功能需要入会前调用一次
  • 仅使用范围语音时,通过设置audibleDistance设置语音接收范围,其他参数设置不生效,填写默认值即可。
参数
audibleDistance监听器能够听到扬声器并接收其文本消息的距离扬声器的最大距离。[0,1000] 默认值为 32。
conversationalDistance控制扬声器音频保持其原始音量的范围,超出该范围时,语音聊天的响度在被听到时开始淡出。 默认值为 1。
rollOff距离衰减模式 RtcDistanceRolloffModel ,默认值 kNERtcDistanceRolloffNone
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ UpdateSelfPosition()

abstract int nertc.IRtcChannel.UpdateSelfPosition ( RtcPositionInfo  info)
pure virtual

引擎3D音效算法中本人坐标方位更新接口

注解
  • 此接口在加入房间成功后调用
  • 仅使用范围语音时,只需设置speakerPosition和headPosition,两者值保持一致;旋转信息只需设置默认值。
  • 在2D坐标系场景里,position的y值设置为0
  • 成功开启3D空间音效后(enableSpatializer),旋转信息设置有效。
参数
info位置信息,详细信息参看 RtcPositionInfo.
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ EnableSpatializerRoomEffects()

abstract int nertc.IRtcChannel.EnableSpatializerRoomEffects ( bool  enable)
pure virtual

引擎3D音效算法中房间混响效果开关

注解
依赖 EnableSpatializer 接口开启
参数
enable混响效果开关,默认值关闭
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ SetSpatializerRoomProperty()

abstract int nertc.IRtcChannel.SetSpatializerRoomProperty ( RtcSpatializerRoomProperty  roomProperty)
pure virtual

引擎3D音效算法中房间混响属性

注解
依赖 EnableSpatializer 接口开启
参数
roomProperty房间属性 RtcSpatializerRoomProperty
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ SetSpatializerRenderMode()

abstract int nertc.IRtcChannel.SetSpatializerRenderMode ( RtcSpatializerRenderMode  mode)
pure virtual

引擎3D音效算法中渲染模式

注解
依赖 EnableSpatializer 接口开启
参数
mode渲染模式 RtcSpatializerRenderMode ,默认值 kNERtcSpatializerRenderBinauralHighQuality
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ InitSpatializer()

abstract int nertc.IRtcChannel.InitSpatializer ( )
pure virtual

初始化引擎3D音效算法

注解
此接口在加入房间前调用,退出房间后不重置
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ EnableSpatializer()

abstract int nertc.IRtcChannel.EnableSpatializer ( bool  enable)
pure virtual

引擎3D音效算法开关

注解
通话前调用,通话结束后不重置
参数
enable是否打开3D音效算法功能
返回
  • 0: 方法调用成功
  • 其他: 调用失败

该类的文档由以下文件生成: