NERtc Android SDK V5.6.30
载入中...
搜索中...
未找到
com.netease.lava.nertc.sdk.channel.NERtcChannel类 参考abstract

Public 成员函数

abstract String getChannelName ()
 
abstract void setChannelCallback (NERtcChannelCallback channelCallback)
 
abstract void setChannelCallbackHandler (Handler callbackHandler)
 
abstract void setStatsObserver (NERtcStatsObserver statsObserver)
 
abstract int setChannelProfile (int channelProfile)
 
abstract int joinChannel (String token)
 
abstract int joinChannel (String token, long userId)
 
abstract int joinChannel (String token, long userId, NERtcJoinChannelOptions channelOptions)
 
abstract int leaveChannel ()
 
abstract int updatePermissionKey (String key)
 
abstract int enableLocalAudio (boolean enable)
 
abstract int enableMediaPub (int mediaType, boolean enable)
 
abstract int muteLocalAudioStream (boolean mute)
 
abstract int subscribeRemoteAudioStream (long uid, boolean subscribe)
 
abstract int subscribeAllRemoteAudioStreams (boolean subscribe)
 
abstract int setCameraCaptureConfig (NERtcCameraCaptureConfig captureConfig)
 
abstract int setCameraCaptureConfig (NERtcCameraCaptureConfig captureConfig, NERtcVideoStreamType streamType)
 
abstract int setLocalVideoConfig (NERtcVideoConfig videoConfig)
 
abstract int setLocalVideoConfig (NERtcVideoConfig videoConfig, NERtcVideoStreamType streamType)
 
abstract int enableDualStreamMode (boolean enable)
 
abstract int setupLocalVideoCanvas (IVideoRender render)
 
abstract int getFeatureSupportedType (NERtcFeatureType featureType)
 
abstract int setupRemoteVideoCanvas (IVideoRender render, long uid)
 
abstract int enableLocalVideo (boolean enable)
 
abstract int enableLocalVideo (NERtcVideoStreamType streamType, boolean enable)
 
abstract int muteLocalVideoStream (boolean mute)
 
abstract int muteLocalVideoStream (boolean mute, NERtcVideoStreamType streamType)
 
abstract int setupLocalSubStreamVideoCanvas (IVideoRender render)
 
abstract int setupRemoteSubStreamVideoCanvas (IVideoRender render, long uid)
 
abstract int setLocalExternalVideoRenderer (NERtcVideoStreamType streamType, NERtcExternalVideoRenderer renderer)
 
abstract int setRemoteExternalVideoRenderer (NERtcVideoStreamType streamType, long uid, NERtcExternalVideoRenderer renderer)
 
abstract int switchCamera ()
 
abstract int switchCameraWithPosition (int cameraPos)
 
abstract int startScreenCapture (NERtcScreenConfig screenConfig, Intent mediaProjectionPermissionResultData, MediaProjection.Callback mediaProjectionCallback)
 
abstract void stopScreenCapture ()
 
abstract int enableLoopbackRecording (boolean enable, Intent mediaProjectionResultIntent, MediaProjection.Callback callback)
 
abstract int adjustLoopBackRecordingSignalVolume (int volume)
 
abstract int subscribeRemoteVideoStream (long uid, NERtcRemoteVideoStreamType streamType, boolean subscribe)
 
abstract int subscribeRemoteSubStreamVideo (long uid, boolean subscribe)
 
abstract int setExternalVideoSource (boolean enable)
 
abstract int setExternalVideoSource (NERtcVideoStreamType streamType, boolean enable)
 
abstract boolean pushExternalVideoFrame (NERtcVideoFrame frame)
 
abstract boolean pushExternalVideoFrame (NERtcVideoStreamType streamType, NERtcVideoFrame frame)
 
abstract int setClientRole (int role)
 
abstract int getConnectionState ()
 
abstract int addLiveStreamTask (NERtcLiveStreamTaskInfo taskInfo, AddLiveTaskCallback addLiveTaskCallback)
 
abstract int updateLiveStreamTask (NERtcLiveStreamTaskInfo taskInfo, UpdateLiveTaskCallback updateLiveTaskCallback)
 
abstract int removeLiveStreamTask (String taskId, DeleteLiveTaskCallback deleteLiveTaskCallback)
 
abstract int sendSEIMsg (String seiMsg, NERtcVideoStreamType streamType)
 
abstract int sendSEIMsg (String seiMsg)
 
abstract int takeLocalSnapshot (NERtcVideoStreamType streamType, NERtcTakeSnapshotCallback callback)
 
abstract int takeRemoteSnapshot (long uid, NERtcVideoStreamType streamType, NERtcTakeSnapshotCallback callback)
 
abstract int setLocalMediaPriority (int priority, boolean isPreemptive)
 
abstract int startChannelMediaRelay (NERtcMediaRelayParam.ChannelMediaRelayConfiguration config)
 
abstract int updateChannelMediaRelay (NERtcMediaRelayParam.ChannelMediaRelayConfiguration config)
 
abstract int stopChannelMediaRelay ()
 
abstract int enableAudioVolumeIndication (boolean enable, int interval, boolean enableVad)
 
abstract int adjustUserPlaybackSignalVolume (long uid, int volume)
 
abstract int adjustChannelPlaybackSignalVolume (int volume)
 
abstract int setLocalPublishFallbackOption (int option)
 
abstract int setRemoteSubscribeFallbackOption (int option)
 
abstract int enableEncryption (boolean enable, NERtcEncryptionConfig config)
 
abstract int setRemoteHighPriorityAudioStream (boolean enabled, long uid)
 
abstract int setAudioSubscribeOnlyBy (long[] uidArray)
 
abstract int enableLocalSubStreamAudio (boolean enable)
 
abstract int muteLocalSubStreamAudio (boolean mute)
 
abstract int subscribeRemoteSubStreamAudio (long uid, boolean subscribe)
 
abstract int enableLocalData (boolean enabled)
 
abstract int subscribeRemoteData (boolean subscribe, long userID)
 
abstract int sendData (NERtcDataExternalFrame frame)
 
abstract int reportCustomEvent (String eventName, String customIdentify, HashMap< String, Object > param)
 
abstract void release ()
 
abstract int setAudioRecvRange (int audible_distance, int conversational_distance, NERtcDistanceRolloffModel roll_off)
 
abstract int updateSelfPosition (NERtcPositionInfo info)
 
abstract int enableSpatializerRoomEffects (boolean enable)
 
abstract int setSpatializerRoomProperty (NERtcSpatializerRoomProperty room_property)
 
abstract int setSpatializerRenderMode (NERtcSpatializerRenderMode mode)
 
abstract int enableSpatializer (boolean enable, boolean applyToTeam)
 
abstract int initSpatializer ()
 
abstract int setRangeAudioMode (NERtcRangeAudioMode mode)
 
abstract int setRangeAudioTeamID (int teamId)
 
abstract int setSubscribeAudioBlocklist (long[] uidArray, NERtcAudioStreamType streamType)
 
abstract int setSubscribeAudioAllowlist (long[] uidArray)
 

详细描述

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

自从
V4.5.0

成员函数说明

◆ addLiveStreamTask()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.addLiveStreamTask ( NERtcLiveStreamTaskInfo taskInfo,
AddLiveTaskCallback addLiveTaskCallback )
abstract

添加房间内推流任务。 通过此接口可以实现增加一路旁路推流任务;若需推送多路流,则需多次调用该方法。

自从
V3.5.0
使用前提
请先通过 NERtcEx#setChannelProfile() 接口设置房间模式为直播模式。
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
注解
  • 仅角色为主播的房间成员能调用此接口,观众成员无相关推流权限。
  • 同一个音视频房间(即同一个 channelId)可以创建 6 个不同的推流任务。
参数说明
参数名称 类型 描述
taskInfo live.NERtcLiveStreamTaskInfo 推流任务信息。
addLiveTaskCallback live.AddLiveTaskCallback 操作结果回调,方法调用成功后会触发对应的 AddLiveTaskCallback#onAddLiveStreamTask() 回调。
示例代码
@Override
public void onAddLiveStreamTask(String taskId, int errCode) {
}
}
taskInfo.taskId = "xxxx";
taskInfo.url ="xxx";
// ...... 其他更多参数
nrtcChannel.addLiveStreamTask(taskInfo,addCallback);
定义 NERtcLiveStreamTaskInfo.java:26
相关回调
AddLiveTaskCallback#onAddLiveStreamTask() :推流任务已成功删除回调。 NERtcChannelCallback#onLiveStreamState():推流任务状态已改变回调。
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。

◆ adjustChannelPlaybackSignalVolume()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.adjustChannelPlaybackSignalVolume ( int volume)
abstract

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

自从
V4.6.50
调用时机
请在引擎初始化之后调用此接口,该方法在加入房间前后均可调用。
注解
参数说明
参数名称 类型 描述
volume int 播放音量,取值范围为 [0,400]。
  • 0:静音。
  • 100:原始音量。
  • 400:最大可为原始音量的 4 倍(自带溢出保护)。
示例代码
//调整 uid 为 12345 的用户在本地的播放音量为 50
nrtcChannel.adjustChannelPlaybackSignalVolume(50);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化。

◆ adjustLoopBackRecordingSignalVolume()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.adjustLoopBackRecordingSignalVolume ( int volume)
abstract

调整共享音频音量。

自从
V4.6.0
参数
volume  采集信号量。该参数的取值范围为 0 ~ 100。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ adjustUserPlaybackSignalVolume()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.adjustUserPlaybackSignalVolume ( long uid,
int volume )
abstract

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

自从
V4.2.1
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
注解
  • 该方法设置内部引擎为启用状态,在 NERtcChannel#leaveChannel() 后失效,但在本次通话过程中有效,比如指定远端用户中途退出房间,则再次加入此房间时仍旧维持该设置。
  • 该方法每次只能调整一位远端用户的播放音量,若需调整多位远端用户在本地播放的音量,则需多次调用该方法。
参数说明
参数名称 类型 描述
uid long 远端用户 ID。
volume int 播放音量,取值范围为 [0,100]。
  • 0:静音。
  • 100:原始音量。
示例代码
//调整 uid 为 12345 的用户在本地的播放音量为 50
nrtcChannel.adjustUserPlaybackSignalVolume(12345, 50);
//调整 uid 为 12345 的用户在本地的播放音量为 0,静音该用户。
nrtcChannel.adjustUserPlaybackSignalVolume(12345, 0);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化。

◆ enableAudioVolumeIndication()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableAudioVolumeIndication ( boolean enable,
int interval,
boolean enableVad )
abstract

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

参见
NERtcCallbackEx.onRemoteAudioVolumeIndication}
自从
V4.6.10
参数
enable是否启用说话者音量提示。
  • true:启用说话者音量提示。
  • false:关闭说话者音量提示。
interval指定音量提示的时间间隔。单位为毫秒。必须设置为 100 毫秒的整数倍值,建议设置为 200 毫秒以上。
enableVad是否启用本地采集人声监测
  • true:启用本地采集人声监测。
  • false:关闭本地采集人声监测。
返回
0 方法调用成功,其他失败。

◆ enableDualStreamMode()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableDualStreamMode ( boolean enable)
abstract

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

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 该方法只对摄像头数据生效,对自定义输入、屏幕共享等视频流无效。
  • 该接口的设置会在摄像头重启后生效。
参数说明
参数名称 类型 描述
enable boolean 是否开启双流模式:
  • true:开启双流模式。
  • false:关闭双流模式。
示例代码
nrtcChannel.enableDualStreamMode(true);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ enableEncryption()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableEncryption ( boolean enable,
NERtcEncryptionConfig config )
abstract

开启或关闭媒体流加密。

自从
V4.4.0 在金融行业等安全性要求较高的场景下,您可以在加入房间前通过此方法设置媒体流加密模式。
注解
  • 请在加入房间前调用该方法,加入房间后无法修改加密模式与密钥。用户离开房间后,SDK 会自动关闭加密。如需重新开启加密,需要在用户再次加入房间前调用此方法。
  • 同一房间内,所有开启媒体流加密的用户必须使用相同的加密模式和密钥,否则使用不同密钥的成员加入房间时会报错 ENGINE_ERROR_ENCRYPT_NOT_SUITABLE(30113)。
  • 安全起见,建议每次启用媒体流加密时都更换新的密钥。
参数
enable是否开启媒体流加密。
  • true: 开启
  • false:(默认)关闭
config媒体流加密方案。详细信息请参考 NERtcEncryptionConfig。
返回
0 方法调用成功,其他调用失败

◆ enableLocalAudio()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableLocalAudio ( boolean enable)
abstract

开启或关闭本地音频的采集和发送。
通过本接口可以实现开启或关闭本地语音功能,进行本地音频采集及处理。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 加入房间后,语音功能默认为开启状态。
  • 该方法设置内部引擎为启用状态,在 NERtcChannel#leaveChannel() 后仍然有效。
  • 该方法不影响接收或播放远端音频流,enableLocalAudio(false) 适用于只下行不上行音频流的场景。
  • 自 V4.4.0 版本起,开启或关闭本地音频采集的操作不会影响伴音/音效接口的使用,比如 enableLocalAudio(false) 后仍可以调用 NERtcEx#startAudioMixing() 方法播放音乐文件。
  • 该方法会操作音频硬件设备,建议避免频繁开关,否则可能导致设备异常。
参数说明
参数名称 类型 描述
enable boolean 是否启用本地音频的采集和发送:
  • true:开启本地音频采集。
  • false:关闭本地音频采集。关闭后,远端用户会接收不到本地用户的音频流;但本地用户依然可以接收到远端用户的音频流。
示例代码
//打开音频采集
nrtcChannel.enableLocalAudio(true);
//关闭音频采集
nrtcChannel.enableLocalAudio(false);
相关回调
相关接口
NERtcChannel#muteLocalAudioStream():两者的差异在于,enableLocalAudio 用于开启本地语音采集及处理,而 muteLocalAudioStream 用于停止或继续发送本地音频流。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。

◆ enableLocalData()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableLocalData ( boolean enabled)
abstract

开启或关闭本地数据通道。

注解
  • 该方法加入房间后才可调用。
  • 成功启用或禁用本地数据通道后,远端会触发 onNERtcEngineUserDataDidStop 或 onNERtcEngineUserDataDidStart 回调。
参数
[in]enabled是否启用本地数据通道:
  • true: 开启本地数据通道;
  • false: 关闭本地数据通道。
自从
V5.0.0
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ enableLocalSubStreamAudio()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableLocalSubStreamAudio ( boolean enable)
abstract

开启或关闭音频辅流。
开启时远端会收到 NERtcCallbackEx#onUserSubStreamAudioStart(long),关闭时远端会收到NERtcCallbackEx#onUserSubStreamAudioStop(long)

自从
V4.6.10
参数
enable是否开启音频辅流。
  • true:开启音频辅流。
  • false:关闭音频辅流。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ enableLocalVideo() [1/2]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableLocalVideo ( boolean enable)
abstract

开启或关闭本地视频的采集与发送。
通过本接口可以实现开启或关闭本地视频,不影响接收远端视频。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 该方法设置内部引擎为开启或关闭状态, 在 NERtcChannel#leaveChannel() 后仍然有效。
  • 在您的应用切到后台或者其他应用占用摄像头时,可能会导致摄像头打开失败,需要注册 camera 动态权限,详细信息请参考 添加权限
参数说明
参数名称 类型 描述
enable boolean 是否开启本地视频采集与发送:
  • true:开启本地视频采集。
  • false:关闭本地视频采集。关闭后,远端用户无法接收到本地用户的视频流;但本地用户仍然可以接收到远端用户的视频流。
示例代码
//打开视频
nrtcChannel.enableLocalVideo(true);
//关闭视频
nrtcChannel.enableLocalVideo(false);
相关回调
相关接口
若您希望开启辅流通道的视频采集,请调用 NERtcChannel#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable) 方法。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30001(ENGINE_ERROR_FATAL):通用错误,一般表示引擎错误,尝试再次调用此接口即可。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如已开启外部视频采集。
    • 30011(ENGINE_ERROR_CREATE_DEVICE_SOURCE_FAIL):创建设备源失败,未获取到操作系统的摄像头权限。
    • 30403(ENGINE_ERROR_MEDIA_BANNED): 已被服务器禁用视频。

◆ enableLocalVideo() [2/2]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableLocalVideo ( NERtcVideoStreamType streamType,
boolean enable )
abstract

开启或关闭本地视频的采集与发送。
通过主流或辅流视频通道进行本地视频流的采集与发送。

自从
V4.6.20
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 该方法设置内部引擎为开启或关闭状态, 在 NERtcChannel#leaveChannel() 后仍然有效。
  • 在您的应用切到后台或者其他应用占用摄像头时,可能会导致摄像头打开失败,需要注册 camera 动态权限,详细信息请参考 添加权限
参数说明
参数名称 类型 描述
streamType video.NERtcVideoStreamType 视频通道类型:
  • kNERtcVideoStreamTypeMain:主流。
  • kNERtcVideoStreamTypeSub:辅流。
enable boolean 是否开启本地视频采集与发送:
  • true:开启本地视频采集。
  • false:关闭本地视频采集。关闭后,远端用户无法接收到本地用户的视频流;但本地用户仍然可以接收到远端用户的视频流。
示例代码
//打开视频主流
nrtcChannel.enableLocalVideo(NERtcVideoStreamType.kNERtcVideoStreamTypeMain, true);
//关闭视频主流
nrtcChannel.enableLocalVideo(NERtcVideoStreamType.kNERtcVideoStreamTypeMain, false);
//打开视频辅流
nrtcChannel.enableLocalVideo(NERtcVideoStreamType.kNERtcVideoStreamTypeSub, true);
//关闭视频辅流
nrtcChannel.enableLocalVideo(NERtcVideoStreamType.kNERtcVideoStreamTypeSub, false);
kNERtcVideoStreamTypeMain
定义 NERtcVideoStreamType.java:25
kNERtcVideoStreamTypeSub
定义 NERtcVideoStreamType.java:35
相关回调
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30001(ENGINE_ERROR_FATAL):通用错误,一般表示引擎错误,尝试再次调用此接口即可。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如已开启外部视频采集。
    • 30011(ENGINE_ERROR_CREATE_DEVICE_SOURCE_FAIL):创建设备源失败,未获取到操作系统的摄像头权限。
    • 30027(ENGINE_ERROR_CAMERA_OCCUIPIED): 所选设备已被占用。比如已通过主流通道开启了摄像头,无法再通过辅流通道开启摄像头。
    • 30403(ENGINE_ERROR_MEDIA_BANNED): 已被服务器禁用视频。

◆ enableLoopbackRecording()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableLoopbackRecording ( boolean enable,
Intent mediaProjectionResultIntent,
MediaProjection.Callback callback )
abstract

开启或关闭音频共享。

自从
V4.6.0
参数
enable是否开启音频共享。
  • true:开启音频共享。
  • false:关闭音频共享。
mediaProjectionResultIntent  Android 的系统权限请求 Intent,在请求权限时返回。
callback  音频共享状态回调,用于监听音频共享任务的结束通知。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ enableMediaPub()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableMediaPub ( int mediaType,
boolean enable )
abstract

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

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

◆ enableSpatializer()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableSpatializer ( boolean enable,
boolean applyToTeam )
abstract

开启或关闭空间音效

自从
V5.4.0
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前才可调用。
注解
开启空间音效后,通话结束时仍保留该开关状态,不重置。
参数
enabled是否打开 3D 音效算法功能,默认为关闭状态。
apply_to_team是否仅本小队开启 3D 音效。true: 仅仅和接收端同一个小队的人有 3D 音效;false: 接收到所有的语音都有 3d 音效
  • true: 开启空间音效
  • false: 关闭空间音效
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ enableSpatializerRoomEffects()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.enableSpatializerRoomEffects ( boolean enable)
abstract

开启或关闭空间音效的房间混响效果

自从
V5.4.0
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前才可调用。
注解
请先调用 EnableSpatializer() 接口启用空间音效,再调用本接口。
参数
enable混响效果开关,默认为关闭
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ getChannelName()

abstract String com.netease.lava.nertc.sdk.channel.NERtcChannel.getChannelName ( )
abstract

获取当前房间名称。

返回
当前房间名称。 失败返回 null

◆ getConnectionState()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.getConnectionState ( )
abstract

获取当前房间连接状态。

返回
当前房间连接状态。详细信息请参考 NERtcConstants.ConnectionState

◆ initSpatializer()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.initSpatializer ( )
abstract

初始化引擎 3D 音效算法

自从
V5.4.0
调用时机
此接口在加入房间前后均可调用。
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ joinChannel() [1/3]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.joinChannel ( String token)
abstract

加入音视频房间。
通过本接口可以实现加入音视频房间,加入房间后可以与房间内的其他用户进行音视频通话。

自从
V3.5.0
调用时机
请在初始化后调用该方法。
注解
  • 调用 joinChannel 方法之后,NERTC SDK 会通过 Android 的 AudioManager.setMode() 方法调整音频模式(audio mode),此后请勿修改 SDK 调整过的音频模式,否则可能会导致音频路由错误等问题。
  • 加入音视频房间时,如果指定房间尚未创建,云信服务器内部会自动创建一个同名房间。
  • 传参中 uid 可选,若不指定则默认为 0,SDK 会自动分配一个随机 uid,并在 NERtcChannelCallback#onJoinChannel() 回调方法中返回;App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。
  • 同一个房间内的用户可以互相通话,多个用户加入同一个房间,可以群聊。使用不同 App Key 的 App 之间不能互通。
  • 用户成功加入房间后,默认订阅房间内所有其他用户的音频流,可能会因此产生用量并影响计费;若您想取消自动订阅,可以在通话前通过调用 NERtc#setParameters() 方法实现。
  • 网络测速过程中无法加入房间。
  • 若使用了云代理功能,uid 不允许传 0,请用真实的 uid。
参数说明
参数名称 类型 描述
token String 安全认证签名(NERTC Token),可以设置为:
  • null。调试模式下可设置为 null。安全性不高,建议在产品正式上线前在网易云信控制台中将鉴权方式恢复为默认的安全模式。
  • 已获取的 NERTC Token。安全模式下必须设置为获取到的 Token。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
示例代码
String serverToken = getTokenFromServer();
nrtcChannel.joinChannel(serverToken);
相关接口
相关回调
成功调用该方法加入房间后,本地会触发 NERtcChannelCallback#onJoinChannel() 回调,远端会触发 NERtcChannelCallback#onUserJoined() 回调。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30001(ENGINE_ERROR_FATAL):重复入会或获取房间信息失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如传入的 channelName 不符合要求。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化或正在进行网络探测。

◆ joinChannel() [2/3]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.joinChannel ( String token,
long userId )
abstract

加入音视频房间。
通过本接口可以实现加入音视频房间,加入房间后可以与房间内的其他用户进行音视频通话。

自从
V3.5.0
调用时机
请在初始化后调用该方法。
注解
  • 调用 joinChannel 方法之后,NERTC SDK 会通过 Android 的 AudioManager.setMode() 方法调整音频模式(audio mode),此后请勿修改 SDK 调整过的音频模式,否则可能会导致音频路由错误等问题。
  • 加入音视频房间时,如果指定房间尚未创建,云信服务器内部会自动创建一个同名房间。
  • 传参中 uid 可选,若不指定则默认为 0,SDK 会自动分配一个随机 uid,并在 NERtcChannelCallback#onJoinChannel() 回调方法中返回;App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。
  • 同一个房间内的用户可以互相通话,多个用户加入同一个房间,可以群聊。使用不同 App Key 的 App 之间不能互通。
  • 用户成功加入房间后,默认订阅房间内所有其他用户的音频流,可能会因此产生用量并影响计费;若您想取消自动订阅,可以在通话前通过调用 NERtc#setParameters() 方法实现。
  • 网络测速过程中无法加入房间。
  • 若使用了云代理功能,uid 不允许传 0,请用真实的 uid。
参数说明
参数名称 类型 描述
token String 安全认证签名(NERTC Token),可以设置为:
  • null。调试模式下可设置为 null。安全性不高,建议在产品正式上线前在网易云信控制台中将鉴权方式恢复为默认的安全模式。
  • 已获取的 NERTC Token。安全模式下必须设置为获取到的 Token。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
示例代码
String serverToken = getTokenFromServer();
nrtcChannel.joinChannel(serverToken, userId);
相关接口
相关回调
成功调用该方法加入房间后,本地会触发 NERtcChannelCallback#onJoinChannel() 回调,远端会触发 NERtcChannelCallback#onUserJoined() 回调。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30001(ENGINE_ERROR_FATAL):重复入会或获取房间信息失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如传入的 channelName 不符合要求。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化或正在进行网络探测。

◆ joinChannel() [3/3]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.joinChannel ( String token,
long userId,
NERtcJoinChannelOptions channelOptions )
abstract

加入音视频房间。
加入音视频房间时,如果指定房间尚未创建,云信服务器内部会自动创建一个同名房间。

注解
  • SDK 加入房间后,同一个房间内的用户可以互相通话,多个用户加入同一个房间,可以群聊。使用不同 App Key 的 App 之间不能互通。
  • 成功调用该方加入房间后,本地会触发 onJoinChannel 回调,远端会触发 onUserJoined 回调。
  • 用户成功加入房间后,默认订阅房间内所有其他用户的音频流,可能会因此产生用量并影响计费。如果想取消订阅,可以通过调用相应的 mute 方法实现。
  • 直播场景中,观众角色可以通过 switchChannel 切换房间。
参数
token安全认证签名(NERTC Token)。可设置为:
  • null。调试模式下可设置为 null。安全性不高,建议在产品正式上线前转为安全模式。
  • 已获取的 NERTC Token。安全模式下必须设置为获取到的 Token。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
  • 字符串格式,长度为 1~64 字节。
  • 支持以下 89 个字符:a-z, A-Z, 0-9, space, !#$%&()+-:;≤.,>? @[]^_{|}~”
返回
0 方法调用成功,其他失败
参见
NERtcChannel.leaveChannel()

◆ leaveChannel()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.leaveChannel ( )
abstract

离开音视频房间。
通过本接口可以实现挂断或退出通话,并释放本房间内的相关资源。

自从
V3.5.0
调用时机
请在初始化并成功加入房间后调用该方法。
注解
结束通话时必须调用此方法离开房间,否则无法开始下一次通话。
示例代码
nrtcChannel.leaveChannel();
相关回调
成功调用该方法离开房间后,本地会触发 NERtcChannelCallback#onLeaveChannel() 回调,远端会触发 NERtcChannelCallback#onUserLeave() 回调。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化或正在进行网络探测。

◆ muteLocalAudioStream()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.muteLocalAudioStream ( boolean mute)
abstract

开启或关闭本地音频主流的发送。
该方法用于向网络发送或取消发送本地音频数据,不影响本地音频的采集状态,也不影响接收或播放远端音频流。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
该方法设置内部引擎为启用状态,在 NERtcChannel#leaveChannel() 后恢复至默认(非静音)。
参数说明
参数名称 类型 描述
mute boolean 是否关闭本地音频的发送:
  • true:不发送本地音频。
  • false:发送本地音频。
示例代码
//不发送本地音频
nrtcChannel.muteLocalAudioStream(true);
//发送本地音频
nrtcChannel.muteLocalAudioStream(false);
相关回调
若本地用户在说话,成功调用该方法后,房间内其他用户会收到 NERtcChannelCallback#onUserAudioMute() 回调。
相关接口
NERtcEx#enableMediaPub()
  • 在需要开启本地音频采集(监测本地用户音量)但不发送音频流的情况下,您也可以调用 enableMeidaPub(false) 方法。
  • 两者的差异在于,muteLocalAudioStream(true) 仍然保持与服务器的音频通道连接,而 enableMediaPub(false) 表示断开此通道,因此若您的实际业务场景为多人并发的大房间,建议您调用 enableMediaPub 方法。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):引擎未初始化。
    • 30101(ENGINE_ERROR_ROOM_NOT_JOINED):尚未加入房间。
    • 30107(ENGINE_ERROR_MEDIA_NOT_STARTED):媒体会话未建立,比如对端未开启音频流。
    • 30200(ENGINE_ERROR_CONNECTION_NOT_FOUND): 连接未建立。

◆ muteLocalSubStreamAudio()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.muteLocalSubStreamAudio ( boolean mute)
abstract

静音或解除静音本地上行的音频辅流。

注解
静音状态会在通话结束后被重置为非静音。
自从
V4.6.10
参数
mute是否静音本地音频辅流发送。
  • true(默认):静音本地音频辅流。
  • false:取消静音本地音频辅流。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ muteLocalVideoStream() [1/2]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.muteLocalVideoStream ( boolean mute)
abstract

取消或恢复发布本端视频主流。
调用该方法取消发布本地视频主流后,SDK 不再发送本地视频主流。

自从
V3.5.0
使用前提
一般在通过 NERtcChannel#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable)(true) 接口开启本地视频采集并发送后调用该方法。
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
参数说明
参数名称 类型 描述
mute boolean 是否取消发布本地视频流:
  • true:取消发布本地视频流。
  • false:恢复发布本地视频流。
示例代码
nrtcChannel.muteLocalVideoStream(mute);
相关回调
调用此接口成功后,远端会触发 NERtcChannelCallback#onUserVideoMute(long uid, boolean muted) 回调,通知有用户暂停或恢复发送视频主流。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30004(ENGINE_ERROR_NOT_SUPPORTED):不支持的操作,比如当前使用的是纯音频 SDK。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ muteLocalVideoStream() [2/2]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.muteLocalVideoStream ( boolean mute,
NERtcVideoStreamType streamType )
abstract

取消或恢复发布本地视频。
调用该方法取消发布本地视频主流或辅流后,SDK 不再发送本地视频流。

自从
V4.6.20
使用前提
一般在通过 NERtc#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable)(true) 接口开启本地视频采集并发送后调用该方法。
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
  • 调用该方法取消发布本地视频流时,设备仍然处于工作状态。
  • 若调用该方法取消发布本地视频流,通话结束后会被重置为默认状态,即默认发布本地视频流。
  • 该方法与 NERtc#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable)(false) 的区别在于,后者会关闭本地摄像头设备,该方法不禁用摄像头,不会影响本地视频流采集且响应速度更快。
参数说明
参数名称 类型 描述
streamType video.NERtcVideoStreamType 视频通道类型:
  • kNERtcVideoStreamTypeMain:主流。
  • kNERtcVideoStreamTypeSub:辅流。
muted boolean 是否取消发布本地视频流:
  • true:取消发布本地视频流。
  • false:恢复发布本地视频流。
示例代码
//取消发布本地视频主流
nrtcChannel.muteLocalVideoStream(NERtcVideoStreamType.kNERtcVideoStreamTypeMain, true);
//恢复发布本地视频主流
nrtcChannel.muteLocalVideoStream(NERtcVideoStreamType.kNERtcVideoStreamTypeMain, false);
//取消发布本地视频辅流
nrtcChannel.muteLocalVideoStream(NERtcVideoStreamType.kNERtcVideoStreamTypeSub, true);
//恢复发布本地视频辅流
nrtcChannel.muteLocalVideoStream(NERtcVideoStreamType.kNERtcVideoStreamTypeSub, false);
相关回调
取消发布本地视频主流或辅流后,远端会收到 NERtcCallbackEx.onUserVideoMute() 回调。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30004(ENGINE_ERROR_NOT_SUPPORTED):不支持的操作,比如当前使用的是纯音频 SDK。

◆ pushExternalVideoFrame()

abstract boolean com.netease.lava.nertc.sdk.channel.NERtcChannel.pushExternalVideoFrame ( NERtcVideoFrame frame)
abstract

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

注解
该方法设置内部引擎为启用状态,在 leaveChannel 后不再有效。
参数
frame视频帧的数据信息。详细信息请参考 video.NERtcVideoFrame
返回
true:该帧推送成功;false:该帧推送不成功。

◆ release()

abstract void com.netease.lava.nertc.sdk.channel.NERtcChannel.release ( )
abstract

销毁 NERtcChannel 实例,释放资源。

◆ removeLiveStreamTask()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.removeLiveStreamTask ( String taskId,
DeleteLiveTaskCallback deleteLiveTaskCallback )
abstract

删除房间内指定推流任务。

自从
V3.5.0
使用前提
请先调用 NERtcChannel#addLiveStreamTask() 方法添加推流任务。
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
注解
  • 仅角色为主播的房间成员能调用此接口,观众成员无相关推流权限。
  • 通话结束,房间成员全部离开房间后,推流任务会自动删除;如果房间内还有用户存在,则需要创建推流任务的用户删除推流任务。
参数说明
参数名称 类型 描述
taskId String 推流任务 ID。
deleteLiveTaskCallback live.DeleteLiveTaskCallback 操作结果回调,方法调用成功后会触发对应的 DeleteLiveTaskCallback#onDeleteLiveStreamTask() 回调。
示例代码
@Override
public void onDeleteLiveStreamTask(String taskId, int errCode) {
}
};
nrtcChannel.removeLiveStreamTask(taskInfo.taskId,deleteCallback);
定义 DeleteLiveTaskCallback.java:8
相关回调
DeleteLiveTaskCallback#onDeleteLiveStreamTask() :推流任务已成功删除回调。 NERtcChannelCallback#onLiveStreamState():推流任务状态已改变回调。
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。
    • 403(RESERVE_ERROR_NO_PERMISSION):权限不足,观众模式下不支持此操作。
    • 30003(ENGINE_ERROR_INVALID_PARAM): 参数错误。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ reportCustomEvent()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.reportCustomEvent ( String eventName,
String customIdentify,
HashMap< String, Object > param )
abstract

用户自定义上报事件

参数
eventName事件名 不能为空
param参数键值对,参数值支持 String 及 java 基本类型(int 、bool....), 如不需要填 null
customIdentify自定义标识,比如产品或业务类型,如不需要填 null
返回
0 方法调用成功,其他调用失败

◆ sendData()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.sendData ( NERtcDataExternalFrame frame)
abstract

发送二进制数据。

注解
参数
frame数据参数 NERtcDataExternalFrame
  • 首期先支持 audio
返回
0 方法调用成功,其他失败

◆ sendSEIMsg() [1/2]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.sendSEIMsg ( String seiMsg)
abstract

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

  • 调用时机:视频流(主流)开启后,可调用此函数。
  • 数据长度限制: SEI 最大数据长度为 4096 字节,超限会发送失败。如果频繁发送大量数据会导致视频码率增大,可能会导致视频画质下降甚至卡顿。
  • 发送频率限制:最高为视频发送的帧率,建议不超过 10 次/秒。
  • 生效时间:调用本接口之后,最快在下一帧视频数据帧之后发送 SEI 数据,最慢在接下来的 5 帧视频之后发送。
注解
  • SEI 数据跟随视频帧发送,由于在弱网环境下可能丢帧,SEI 数据也可能随之丢失,所以建议在发送频率限制之内多次发送,保证接收端收到的概率。
  • 调用本接口时,默认使用主流通道发送 SEI。
参数
seiMsg自定义 SEI 数据。
返回
0 方法调用成功,其他失败
参见
NERtcCallbackEx.onRecvSEIMsg(long, String)
NERtcEx.sendSEIMsg(String, NERtcVideoStreamType)

◆ sendSEIMsg() [2/2]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.sendSEIMsg ( String seiMsg,
NERtcVideoStreamType streamType )
abstract

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

  • 调用时机:视频流(主流)开启后,可调用此函数。
  • 数据长度限制: SEI 最大数据长度为 4096 字节,超限会发送失败。如果频繁发送大量数据会导致视频码率增大,可能会导致视频画质下降甚至卡顿。
  • 发送频率限制:最高为视频发送的帧率,建议不超过 10 次/秒。
  • 生效时间:调用本接口之后,最快在下一帧视频数据帧之后发送 SEI 数据,最慢在接下来的 5 帧视频之后发送。
注解
  • SEI 数据跟随视频帧发送,由于在弱网环境下可能丢帧,SEI 数据也可能随之丢失,所以建议在发送频率限制之内多次发送,保证接收端收到的概率。
  • 指定通道发送 SEI 之前,需要提前开启对应的数据流通道。
参数
seiMsg自定义 SEI 数据。
streamType发送 SEI 时,使用的流通道类型。详细信息请参考 video.NERtcVideoStreamType
返回
0 方法调用成功,其他失败
参见
NERtcCallbackEx.onRecvSEIMsg(long, String)

◆ setAudioRecvRange()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setAudioRecvRange ( int audible_distance,
int conversational_distance,
NERtcDistanceRolloffModel roll_off )
abstract

空间音效的距离衰减属性和语音范围。

自从
V5.4.0
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前才可调用。
注解
  • 请先调用 NERtcEx#EnableSpatializer() 接口启用空间音效,再调用本接口。
  • 在通话过程中无法修改该属性,只有退出房间后才可重新设置。
参数说明
参数名称 类型 描述
audible_distance Integer 监听器能接收到音频的最大距离,用户的声音在该范围内可被听见。在该范围内,声音将会随距离的增加而衰减,直至超出所设置的范围,则不再有声音。取值范围[0,1000] 默认值为 32。
conversational_distance Integer 监听器不对音频进行衰减的距离,在该距离范围内,扬声器音频保持其原始音量,超出该范围时,声音将会随距离的增加而衰减。默认值为 1。
roll_off audio.NERtcDistanceRolloffModel() 距离衰减模式。默认值为 kNERtcDistanceRolloffNone。

返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ setAudioSubscribeOnlyBy()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setAudioSubscribeOnlyBy ( long[] uidArray)
abstract

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

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

◆ setCameraCaptureConfig() [1/2]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setCameraCaptureConfig ( NERtcCameraCaptureConfig captureConfig)
abstract

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

自从
V4.5.0
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
业务场景
在视频通话或直播中,SDK 自动控制摄像头的输出参数。默认情况下,SDK 会根据用户该接口的配置匹配最合适的分辨率进行采集。但是在部分业务场景中,如果采集画面质量无法满足实际需求,可以调用该接口调整摄像头的采集配置。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 该方法仅适用于视频主流,若您希望为辅流通道设置摄像头的采集配置,请调用 NERtcChannel#setCameraCaptureConfig(NERtcCameraCaptureConfig captureConfig, NERtcVideoStreamType streamType) 方法。
  • 该方法支持在加入房间后动态调用,设置成功后,会自动重启摄像头采集模块。
  • 若系统相机不支持您设置的分辨率,会自动调整为最相近一档的分辨率,因此建议您设置为常规标准的分辨率。
  • 设置较高的采集分辨率会增加性能消耗,例如 CPU 和内存占用等,尤其是在开启视频前处理的场景下。
参数说明
参数名称 类型 描述
captureConfig video.NERtcCameraCaptureConfig 本地摄像头采集配置。
示例代码
capConfig.captureWidth = 1080;
capConfig.captureHeight = 720;
nrtcChannel.setCameraCaptureConfig(capConfig);
定义 NERtcCameraCaptureConfig.java:16
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如 captureConfig 设置为空。
    • 30004(ENGINE_ERROR_NOT_SUPPORTED):不支持的操作,比如当前使用的是纯音频 SDK。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎未初始化成功。

◆ setCameraCaptureConfig() [2/2]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setCameraCaptureConfig ( NERtcCameraCaptureConfig captureConfig,
NERtcVideoStreamType streamType )
abstract

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

自从
V4.6.20
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
业务场景
在视频通话或直播中,SDK 自动控制摄像头的输出参数。默认情况下,SDK 会根据用户该接口的配置匹配最合适的分辨率进行采集。但是在部分业务场景中,如果采集画面质量无法满足实际需求,可以调用该接口调整摄像头的采集配置。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 调用该接口设置成功后,会自动重启摄像头采集模块。
参数说明
参数名称 类型 描述
captureConfig video.NERtcCameraCaptureConfig 本地摄像头采集配置。
streamType video.NERtcVideoStreamType 视频通道类型:
  • kNERtcVideoStreamTypeMain:主流。
  • kNERtcVideoStreamTypeSub:辅流。
示例代码
//设置本地摄像头主流采集配置
capConfig.captureWidth = 1280;
capConfig.captureHeight = 720;
nrtcChannel.setCameraCaptureConfig(capConfig, NERtcVideoStreamType.kNERtcVideoStreamTypeMain);
//设置本地摄像头辅流采集配置
subCapConfig.captureWidth = 1280;
subCapConfig.captureHeight = 720;
nrtcChannel.setCameraCaptureConfig(subCapConfig, NERtcVideoStreamType.kNERtcVideoStreamTypeSub);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如 captureConfig 设置为空。
    • 30004(ENGINE_ERROR_NOT_SUPPORTED):不支持的操作,比如当前使用的是纯音频 SDK。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎未初始化成功。

◆ setChannelCallback()

abstract void com.netease.lava.nertc.sdk.channel.NERtcChannel.setChannelCallback ( NERtcChannelCallback channelCallback)
abstract

设置 NERtcChannel 对象的事件回调。
您可以通过设置的事件回调,监听当前设置 NERtcChannel 对象的事件回调对象对应房间的事件,并接收房间中用户视频信息等。

参数
channelCallback事件回调对象 NERtcChannelCallback

◆ setChannelCallbackHandler()

abstract void com.netease.lava.nertc.sdk.channel.NERtcChannel.setChannelCallbackHandler ( Handler callbackHandler)
abstract

设置驱动 NERtcChannelCallback 事件回调队列

自从
V5.5.10
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 如果您不指定自己的 callbackHandler 或者设置为 null,默认会采用 MainQueue 作为驱动 NERtcChannelCallback 事件回调的队列。
  • 如果您指定了自己的 callbackHandler NERtcCallback 回调函数操作 UI,会引发线程安全问题。且需要考虑线程的生命周期,如果线程 提前终止,将无法收到 NERtcChannelCallback 的回调。
参数说明
参数名称 类型 描述
callbackHandler android.os.Handler 设置驱动 NERtcChannelCallback 事件回调队列。

◆ setChannelProfile()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setChannelProfile ( int channelProfile)
abstract

设置房间场景。
房间场景可设置为通话或直播场景,不同的场景中 QoS 策略不同。

注解
该方法必须在加入房间前调用,进入房间后无法再设置房间场景。
参数
channelProfile设置房间场景。详细信息请参考 NERtcConstants.RTCChannelProfile
返回
0 方法调用成功,其他调用失败。

◆ setClientRole()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setClientRole ( int role)
abstract

设置直播场景下的用户角色。
通过本接口可以实现将用户角色在“主播”(CLIENT_ROLE_BROADCASTER)和“观众“(CLIENT_ROLE_AUDIENCE)之间的切换,用户加入房间后默认为“主播”。

自从
V3.9.0
使用前提
该方法仅在通过 NERtcEx#setChannelProfile() 方法设置房间场景为直播场景(LIVE_BROADCASTING)时调用有效。
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
业务场景
适用于观众上下麦与主播互动的互动直播场景。
注解
用户切换为观众角色时,SDK 会自动关闭音视频设备。
参数说明
参数名称 类型 描述
role int 用户角色:
  • CLIENT_ROLE_BROADCASTER(0):设置用户角色为主播。主播可以开关摄像头等设备、可以发布流、可以操作互动直播推流相关接口、加入或退出房间状态对其他房间内用户可见。
  • CLIENT_ROLE_AUDIENCE(1):设置用户角色为观众。观众只能收流不能发流、加入或退出房间状态对其他房间内用户不可见。
示例代码
//切换用户角色为主播
nrtcChannel.setClientRole(NERtcConstants.UserRole.CLIENT_ROLE_BROADCASTER);
//切换用户角色为观众
nrtcChannel.setClientRole(NERtcConstants.UserRole.CLIENT_ROLE_AUDIENCE);
int CLIENT_ROLE_BROADCASTER
定义 NERtcConstants.java:1041
int CLIENT_ROLE_AUDIENCE
定义 NERtcConstants.java:1051
定义 NERtcConstants.java:31
相关回调
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30001(ENGINE_ERROR_FATAL):引擎未创建成功。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如传入的 int 值不是观众或主播。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,引擎尚未初始化。
    • 30101(ENGINE_ERROR_ROOM_NOT_JOINED): 尚未加入房间。

◆ setExternalVideoSource()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setExternalVideoSource ( boolean enable)
abstract

开启或关闭外部视频源数据输入。
该方法启用外部视频数据输入功能。

注解
  • 该方法设置内部引擎为启用状态,在 leaveChannel 后仍然有效。如果需要关闭该功能,需要在下次通话前调用接口关闭该功能。
  • 如果使用了外部视频源,请在调用 startScreenCapture、enableLocalVideo 或 startVideoPreview 之前调用此 API。
  • 外部输入视频源是屏幕共享时默认使用辅流通道,非屏幕共享时使用主流通道,此时与 Camera 互斥。
  • 之前使用主流通道或者当前使用主流通道,且主流已经开启时,请勿更改设置。之前使用辅流通道或者当前使用辅流通道,且辅流已经开启时,请勿更改设置。
参数
enable是否使用外部视频源:
  • true:使用外部视频源。
  • false:(默认)不使用外部视频源。

◆ setLocalExternalVideoRenderer()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setLocalExternalVideoRenderer ( NERtcVideoStreamType streamType,
NERtcExternalVideoRenderer renderer )
abstract

自定义本地视频渲染器。
该方法设置本地视频渲染器。只影响本地用户看到的视频画面,不影响远端。
在 App 开发中,通常在初始化后调用该方法进行本地自定义渲染器设置,然后再加入房间。

注解
  • 该方法在加入频道前后均能调用。
  • 如果您希望在通话中更新本地用户视图的渲染或镜像模式,请在渲染实现时自行实现。
参数说明
参数名称 类型 描述
streamType NERtcVideoStreamType 视频通道类型:
  • kNERtcVideoStreamTypeMain:主流。
  • kNERtcVideoStreamTypeSub:辅流。
renderer NERtcExternalVideoRenderer 自定义的本地视频渲染器。详细信息请参考 NERtcExternalVideoRenderer
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setLocalMediaPriority()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setLocalMediaPriority ( int priority,
boolean isPreemptive )
abstract

设置本地用户的媒体流优先级。
通过此接口可以实现设置某用户的媒体流优先级为高,从而弱网环境下 SDK 会优先保证其他用户收到的该用户媒体流的质量。

自从
V4.2.0
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间前调用。
注解
参数说明
参数名称 类型 描述
priority int 本地用户的媒体流优先级,默认为 NERtcConstants.MediaPriority#MEDIA_PRIORITY_NORMAL,即普通优先级,详细信息请参考 NERtcConstants.MediaPriority
isPreemptive boolean 是否开启抢占模式:
  • true:开启抢占模式。抢占模式开启时,本地用户可以抢占其他用户的高优先级,被抢占的用户的媒体优先级变为普通优先级,在抢占者退出房间后,其他用户的优先级仍旧维持普通优先级。
  • false:关闭抢占模式。抢占模式关闭时,如果房间中已有高优先级用户,则本地用户的高优先级设置不生效,仍旧为普通优先级。
示例代码
nrtcChannel.setLocalMediaPriority(NERtcConstants.MediaPriority.MEDIA_PRIORITY_NORMAL, false);
int MEDIA_PRIORITY_NORMAL
定义 NERtcConstants.java:2942
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):无效参数。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ setLocalPublishFallbackOption()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setLocalPublishFallbackOption ( int option)
abstract

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

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

◆ setLocalVideoConfig() [1/2]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setLocalVideoConfig ( NERtcVideoConfig videoConfig)
abstract

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

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 每个属性对应一套视频参数,例如分辨率、帧率、码率等。所有设置的参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率、帧率或码率的最大值时,会取最接近最大值的那个值。
  • 此接口为全量参数配置接口,重复调用此接口时,SDK 会刷新此前的所有参数配置,以最新的传参为准。所以每次修改配置时都需要设置所有参数,未设置的参数将取默认值。
参数说明
参数名称 类型 描述
videoConfig video.NERtcVideoConfig 视频编码属性配置。
示例代码
//设置本地视频主流编码参数
config.width = 640; //设置分辨率宽
config.height = 360; //设置分辨率高
config.videoCropMode = NERtcConstants.VideoCropMode.CROP_16x9; //设置裁剪格式 16:9
config.frameRate = NERtcEncodeConfig.NERtcVideoFrameRate.FRAME_RATE_FPS_30; //视频帧率
config.minFramerate = minFrameRate; //视频最小帧率
config.minBitrate = minBitRate; //视频编码码率
config.degradationPrefer = NERtcVideoConfig.NERtcDegradationPreference.DEGRADATION_DEFAULT; //带宽受限时的视频编码降级偏好
nrtcChannel.setLocalVideoConfig(config);
int CROP_16x9
定义 NERtcConstants.java:1815
相关接口
若您希望为视频辅流通道设置编码属性,请调用 NERtcChannel#setLocalVideoConfig(NERtcVideoConfig videoConfig, NERtcVideoStreamType streamType) 方法。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。

◆ setLocalVideoConfig() [2/2]

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setLocalVideoConfig ( NERtcVideoConfig videoConfig,
NERtcVideoStreamType streamType )
abstract

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

自从
V4.6.20
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 每个属性对应一套视频参数,例如分辨率、帧率、码率等。所有设置的参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率、帧率或码率的最大值时,会取最接近最大值的那个值。
  • 此接口为全量参数配置接口,重复调用此接口时,SDK 会刷新此前的所有参数配置,以最新的传参为准。所以每次修改配置时都需要设置所有参数,未设置的参数将取默认值。
参数说明
参数名称 类型 描述
streamType boolean 视频通道类型:
  • kNERtcVideoStreamTypeMain:主流。
  • kNERtcVideoStreamTypeSub:辅流。
videoConfig video.NERtcVideoConfig 视频编码属性配置。
示例代码
//设置本地视频主流编码参数
config.width = 640; //设置分辨率宽
config.height = 360; //设置分辨率高
config.videoCropMode = NERtcConstants.VideoCropMode.CROP_16x9; //设置裁剪格式 16:9
config.frameRate = NERtcEncodeConfig.NERtcVideoFrameRate.FRAME_RATE_FPS_30; //视频帧率
config.minFramerate = minFrameRate; //视频最小帧率
config.minBitrate = minBitRate; //视频编码码率
config.degradationPrefer = NERtcVideoConfig.NERtcDegradationPreference.DEGRADATION_DEFAULT; //带宽受限时的视频编码降级偏好
nrtcChannel.setLocalVideoConfig(config, NERtcVideoStreamType.kNERtcVideoStreamTypeMain);
//设置本地视频辅流编码参数
subConfig.width = 640; //设置分辨率宽
subConfig.height = 360; //设置分辨率高
subConfig.videoCropMode = NERtcConstants.VideoCropMode.CROP_16x9;
subConfig.frameRate = NERtcEncodeConfig.NERtcVideoFrameRate.FRAME_RATE_FPS_30;
subConfig.minFramerate = minFrameRate; //视频最小帧率
subConfig.minBitrate = minBitRate; //视频编码码率
subConfig.degradationPrefer = NERtcVideoConfig.NERtcDegradationPreference.DEGRADATION_DEFAULT;
nrtcChannel.setLocalVideoConfig(subConfig, NERtcVideoStreamType.kNERtcVideoStreamTypeSub);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如 videoConfig 设置为空。
    • 30004(ENGINE_ERROR_NOT_SUPPORTED):不支持的操作,比如当前使用的是纯音频 SDK。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎未初始化成功。

◆ setRangeAudioMode()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setRangeAudioMode ( NERtcRangeAudioMode mode)
abstract

设置范围语音模式

自从
V5.4.0
调用时机
参数
mode范围语音模式。 此接口在加入房间前后均可调用。
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ setRangeAudioTeamID()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setRangeAudioTeamID ( int teamId)
abstract

设置范围语音小队

自从
V5.4.0
调用时机
此接口在加入房间前后均可调用。
参数
mode范围语音模式。
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ setRemoteExternalVideoRenderer()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setRemoteExternalVideoRenderer ( NERtcVideoStreamType streamType,
long uid,
NERtcExternalVideoRenderer renderer )
abstract

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

注解
  • 在收到 onUserVideoStart 事件时设置。
  • 如果您希望在通话中更新远端用户视图的渲染或镜像模式,请在渲染实现时自行实现。
参数说明
参数名称 类型 描述
streamType NERtcVideoStreamType 视频通道类型:
  • kNERtcVideoStreamTypeMain:主流。
  • kNERtcVideoStreamTypeSub:辅流。
uid 远端用户 ID
renderer NERtcExternalVideoRenderer 自定义的远端视频渲染器。详细信息请参考 NERtcExternalVideoRenderer
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setRemoteHighPriorityAudioStream()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setRemoteHighPriorityAudioStream ( boolean enabled,
long uid )
abstract

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

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

◆ setRemoteSubscribeFallbackOption()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setRemoteSubscribeFallbackOption ( int option)
abstract

设置弱网条件下订阅的音视频流回退选项。 弱网环境下,订阅的音视频质量会下降。调用该接口并将 option 设置为 NERtcConstants.StreamFallbackOption#VIDEO_STREAM_LOW 或者 NERtcConstants.StreamFallbackOption#AUDIO_ONLY 后:

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

◆ setSpatializerRenderMode()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setSpatializerRenderMode ( NERtcSpatializerRenderMode mode)
abstract

设置空间音效的渲染模式

自从
V5.4.0
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前才可调用。
注解
请先调用 EnableSpatializer() 接口启用空间音效,再调用本接口。
参数
mode渲染模式,具体请参考 audio.NERtcSpatializerRenderMode,默认值 #kNERtcSpatializerRenderBinauralHighQuality
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ setSpatializerRoomProperty()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setSpatializerRoomProperty ( NERtcSpatializerRoomProperty room_property)
abstract

设置空间音效的房间混响属性

自从
V5.4.0
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前才可调用。
注解
请先调用 EnableSpatializer() 接口启用空间音效,再调用本接口。
参数
room_property房间属性,具体请参考 audio.NERtcSpatializerRoomProperty
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ setStatsObserver()

abstract void com.netease.lava.nertc.sdk.channel.NERtcChannel.setStatsObserver ( NERtcStatsObserver statsObserver)
abstract

注册统计信息观测器,设置统计信息回调。

参数
statsObserver统计信息观测器。详细信息请参考 stats.NERtcStatsObserver

◆ setSubscribeAudioAllowlist()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setSubscribeAudioAllowlist ( long[] uidArray)
abstract

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

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

◆ setSubscribeAudioBlocklist()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setSubscribeAudioBlocklist ( long[] uidArray,
NERtcAudioStreamType streamType )
abstract

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

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

◆ setupLocalSubStreamVideoCanvas()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setupLocalSubStreamVideoCanvas ( IVideoRender render)
abstract

设置本端用户的视频辅流画布。
通过此接口可以实现设置本端用户的辅流显示视图。

自从
V3.9.0
调用时机
请在引擎初始化之后调用此接口,且该方法建议在加入房间前调用。
参数说明
参数名称 类型 描述
render IVideoRender 视频画布。详细信息请参考 video.NERtcVideoView
示例代码
nrtcChannel.setupLocalSubStreamVideoCanvas(mVideoView);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ setupLocalVideoCanvas()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setupLocalVideoCanvas ( IVideoRender render)
abstract

设置本地用户视图。
通过本接口可以实现绑定本地用户和显示视图,并设置本地用户视图在本地显示时的镜像模式和裁减比例,只影响本地用户看到的视频画面。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 在实际业务中,通常建议在初始化后即调用该方法进行本地视图设置,然后再加入房间或开启预览。
  • 在无需使用画布时,建议及时释放之前的画布,否则可能会引起系统 EGL 资源耗尽而导致程序崩溃。
参数说明
参数名称 类型 描述
render IVideoRender 本地用户视频的画布。设置为 NULL 表示取消并释放已设置的画布,详细信息请参考 video.NERtcVideoView
示例代码
NERtcVideoView videoRender = xxx;
//设置本地视频画布
nrtcChannel.setupLocalVideoCanvas(videoRender);
//不需要时用时释放画布
nrtcChannel.setupLocalVideoCanvas(null);
相关接口
若您希望在通话中更新本地用户视图的渲染或镜像模式,请使用 NERtcVideoView#setScalingType(int) 方法。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如尚未加入房间。

◆ setupRemoteSubStreamVideoCanvas()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setupRemoteSubStreamVideoCanvas ( IVideoRender render,
long uid )
abstract

设置远端用户的视频辅流画布。
通过此接口可以实现绑定远端用户和对应辅流的显示视图,即指定某个 uid 使用对应的画布显示。

自从
V3.9.0
使用前提
建议在收到远端用户加入房间的 NERtcChannelCallback#onUserJoined(long uid, NERtcUserJoinExtraInfo joinExtraInfo) 回调后,再调用此接口通过回调返回的 uid 设置对应视图。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
退出房间后,SDK 会清除远端用户和画布的的绑定关系,该设置自动失效。
参数说明
参数名称 类型 描述
render IVideoRender 视频画布。详细信息请参考 video.NERtcVideoView
uid long 远端用户 ID。
示例代码
NERtcVideoView renderView;
long uid;
nrtcChannel.setupRemoteSubStreamVideoCanvas(renderView, uid);
相关接口
可以调用 NERtcVideoView#setScalingType(int) 方法在通话过程中更新远端用户视图的渲染模式。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ setupRemoteVideoCanvas()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.setupRemoteVideoCanvas ( IVideoRender render,
long uid )
abstract

设置远端用户视图。
通过本接口可以实现绑定远端用户和显示视图,并设置远端用户视图在本地显示时的镜像模式和裁减比例,只影响本地用户看到的视频画面。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
您可以通过设置 render 参数为空以解除远端用户视图绑定;退出房间后,SDK 也会主动清除远端用户和视图的绑定关系。
参数说明
参数名称 类型 描述
render IVideoRender 远端用户视频的画布。详细信息请参考 video.NERtcVideoView
uid long 远端用户的 ID。可以在 NERtcChannelCallback#onUserJoined() 回调中获取。
示例代码
int remoteUID = 12345;
NERtcVideoView view = getRemoteRenderView();
//绑定画布
nrtcChannel.setupRemoteVideoCanvas(view, remoteUID);
//退出房间主动解绑
nrtcChannel.setupRemoteVideoCanvas(null, remoteUID);
相关接口
若您希望在通话中更新远端用户视图的渲染模式,请调用 NERtcVideoView#setScalingType(int) 方法。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如尚未加入房间。

◆ startChannelMediaRelay()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.startChannelMediaRelay ( NERtcMediaRelayParam.ChannelMediaRelayConfiguration config)
abstract

开始跨房间媒体流转发。

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

◆ startScreenCapture()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.startScreenCapture ( NERtcScreenConfig screenConfig,
Intent mediaProjectionPermissionResultData,
MediaProjection.Callback mediaProjectionCallback )
abstract

开启屏幕共享。
通过此接口开启屏幕共享后,屏幕共享内容以视频辅流的形式发送。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
参数说明
参数名称 类型 描述
screenConfig video.NERtcScreenConfig 本地辅流发送配置。
mediaProjectionPermissionResultData Intent Android 的录屏请求 Intent,在请求录屏权限时返回。
mediaProjectionCallback MediaProjection.Callback 录屏状态回调,用于监听录屏的结束通知。
示例代码
Intent data;
NERtcScreenConfig screenProfile = new NERtcScreenConfig();
screenProfile.videoProfile = NERtcConstants.VideoProfile.STANDARD;
screenProfile.contentPrefer = NERtcSubStreamContentPrefer.CONTENT_PREFER_MOTION;
screenProfile.frameRate = NERtcVideoFrameRate.FRAME_RATE_FPS_DEFAULT;
screenProfile.minFramerate = 0;
screenProfile.bitrate = 0;
screenProfile.minBitrate = 0;
int ret = nrtcChannel.startScreenCapture(screenProfile, data, new MediaProjection.Callback() {
@Override
public void onStop() {
super.onStop();
showToast("录屏已停止");
}
});
int STANDARD
定义 NERtcConstants.java:1092
相关回调
成功开启屏幕共享辅流后,远端会触发 NERtcChannelCallback#onUserSubStreamVideoStart() 回调。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ stopChannelMediaRelay()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.stopChannelMediaRelay ( )
abstract

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

自从
V4.2.1
使用前提
请在调用 NERtcChannel#startChannelMediaRelay() 方法开启跨房间媒体流转发之后调用此接口。
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
示例代码
nrtcChannel.stopChannelMediaRelay();
相关回调
NERtcChannelCallback#onMediaRelayStatesChange():跨房间媒体流转发状态发生改变回调。成功调用该方法后会返回 MEDIARELAY_STATE_IDLE,否则会返回 MEDIARELAY_STATE_FAILURE。 NERtcChannelCallback#onMediaRelayReceiveEvent():跨房间媒体流相关转发事件回调。成功调用该方法后会返回 MEDIARELAY_EVENT_DISCONNECT,否则会返回 MEDIARELAY_EVENT_FAILURE。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化。
    • 30101(ENGINE_ERROR_ROOM_NOT_JOINED):尚未加入房间。

◆ stopScreenCapture()

abstract void com.netease.lava.nertc.sdk.channel.NERtcChannel.stopScreenCapture ( )
abstract

关闭屏幕共享。
通过此接口可以实现关闭屏幕共享辅流。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
示例代码
nrtcChannel.stopScreenCapture();
相关回调
成功调用此方法后,远端会触发 NERtcChannelCallback#onUserSubStreamVideoStop() 回调。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。
    • 30101(ENGINE_ERROR_ROOM_NOT_JOINED):尚未加入房间。

◆ subscribeAllRemoteAudioStreams()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.subscribeAllRemoteAudioStreams ( boolean subscribe)
abstract

取消或恢复订阅所有远端用户的音频主流。
加入房间时,默认订阅所有远端用户的音频主流,即 NERtc#setParameters() 方法的 KEY_AUTO_SUBSCRIBE_AUDIO 参数默认设置为 true;只有当该参数的设置为 false 时,此接口的调用才会生效。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
业务场景
适用于重要会议需要一键全体静音的场景。
注解
设置该方法的 subscribe 参数为 true 后,对后续加入房间的用户同样生效。 在开启自动订阅(默认)时,设置该方法的 subscribe 参数为 false 可以实现取消订阅所有远端用户的音频流,但此时无法再调用 NERtc#subscribeRemoteAudioStream() 方法单独订阅指定远端用户的音频流。
参数说明
参数名称 类型 描述
subscribe boolean 是否订阅所有用户的音频主流:
  • true:订阅音频主流。
  • false:取消订阅音频主流。
示例代码
//订阅所有远端用户的音频主流
nrtcChannel.subscribeAllRemoteAudioStreams(true);
//取消订阅所有远端用户的音频主流
nrtcChannel.subscribeAllRemoteAudioStreams(false);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):引擎未初始化。
    • 30105(ENGINE_ERROR_USER_NOT_FOUND):未找到指定用户。
    • 30106(ENGNE_ERROR_INVALID_USERID):非法指定用户,比如订阅了本端。
    • 30107(ENGINE_ERROR_MEDIA_NOT_STARTED):媒体会话未建立,比如对端未开启音频主流。
    • 30108(ENGINE_ERROR_SOURCE_NOT_FOUND):媒体源未找到,比如对端未开启音频主流。
    • 30101(ENGINE_ERROR_ROOM_NOT_JOINED): 尚未加入房间。

◆ subscribeRemoteAudioStream()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.subscribeRemoteAudioStream ( long uid,
boolean subscribe )
abstract

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

自从
V3.5.0
调用时机
该方法仅在加入房间后收到远端用户开启音频主流的回调 NERtcChannelCallback#onUserAudioStart() 后可调用。
业务场景
适用于需要手动订阅指定用户音频流的场景。
注解
该方法设置内部引擎为启用状态,在 NERtcChannel#leaveChannel() 后设置失效,将恢复至默认。 在开启音频自动订阅且未打开服务端 ASL 自动选路的情况下,调用该接口无效。
参数说明
参数名称 类型 描述
uid long 指定用户的 ID。
subscribe boolean 是否订阅指定用户的音频主流:
  • true:订阅音频主流。
  • false:取消订阅音频主流。
示例代码
//订阅对方 uid 为 12345 的音频主流
nrtcChannel.subscribeRemoteAudioStream(12345, true);
//取消订阅对方 uid 为 12345 的音频主流
nrtcChannel.subscribeRemoteAudioStream(12345, false);
相关接口
若您希望订阅指定远端用户的音频辅流,请调用 NERtcChannel#subscribeRemoteSubStreamAudio() 方法。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30004(ENGINE_ERROR_NOT_SUPPORTED):不支持该操作,由于开启了音频自动订阅且未打开服务端 ASL 自动选路。
    • 30005(ENGINE_ERROR_INVALID_STATE):引擎未初始化。
    • 30105(ENGINE_ERROR_USER_NOT_FOUND):未找到指定用户。
    • 30106(ENGNE_ERROR_INVALID_USERID):非法指定用户,比如订阅了本端。
    • 30107(ENGINE_ERROR_MEDIA_NOT_STARTED):媒体会话未建立,比如对端未开启音频主流。
    • 30108(ENGINE_ERROR_SOURCE_NOT_FOUND):媒体源未找到,比如对端未开启音频主流。
    • 30101(ENGINE_ERROR_ROOM_NOT_JOINED): 尚未加入房间。

◆ subscribeRemoteData()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.subscribeRemoteData ( boolean subscribe,
long userID )
abstract

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

注解
当 kNERtcKeyAutoSubscribeData 默认打开时,用户不能手动修改数据通道订阅状态
参数
[in]uid指定用户的 ID。
[in]subscribe是否订阅远端用户数据通道流。
  • true: 订阅指定数据通道流(默认)。
  • false: 取消订阅指定数据通道流。
自从
V5.0.0
返回
  • 0: 方法调用成功。
  • 其他: 方法调用失败。

◆ subscribeRemoteSubStreamAudio()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.subscribeRemoteSubStreamAudio ( long uid,
boolean subscribe )
abstract

设置是否订阅指定远端用户的音频辅流。

自从
V4.6.10
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间且收到远端用户开启音频辅流的回调 NERtcChannelCallback#onUserSubStreamAudioStart() 后调用。
注解
  • 加入房间时,默认订阅所有远端用户的音频流。
  • 请在指定远端用户加入房间后再调用此方法。
参数说明
参数名称 类型 描述
uid long 远端用户 ID。
subscribe boolean 是否订阅指定音频辅流:
  • true:订阅指定音频辅流。
  • false:取消订阅指定音频辅流。
示例代码
//订阅对方音频辅流
nrtcChannel.subscribeRemoteSubStreamAudio(12345, true);
//取消订阅对方音频辅流
nrtcChannel.subscribeRemoteSubStreamAudio(12345, false);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30004(ENGINE_ERROR_NOT_SUPPORTED):操作不支持,比如已开启自动订阅音频辅流。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化。
    • 30101(ENGINE_ERROR_ROOM_NOT_JOINED):尚未加入房间。
    • 30105(ENGINE_ERROR_USER_NOT_FOUND):指定用户尚未加入房间。
    • 30107(ENGINE_ERROR_MEDIA_NOT_STARTED):媒体会话未建立,比如指定用户尚未发布音频辅流。

◆ subscribeRemoteSubStreamVideo()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.subscribeRemoteSubStreamVideo ( long uid,
boolean subscribe )
abstract

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

自从
V3.9.0
使用前提
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数说明
参数名称 类型 描述
uid long 远端用户 ID。
subsribe boolean 是否订阅远端的视频辅流:
  • true:订阅远端视频辅流。
  • false:取消订阅远端视频辅流。
示例代码
//订阅远端用户 12345 的视频辅流数据
nrtcChannel.subscribeRemoteSubStreamVideo(12345, true);
相关回调
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。
    • 30105(ENGINE_ERROR_USER_NOT_FOUND):未找到该远端用户,可能对方还未加入房间。
    • 30106(ENGINE_ERROR_INVALID_USERID):无效的 uid,比如不能订阅本端。
    • 30107(ENGINE_ERROR_MEDIA_NOT_STARTED):媒体会话尚未建立。

◆ subscribeRemoteVideoStream()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.subscribeRemoteVideoStream ( long uid,
NERtcRemoteVideoStreamType streamType,
boolean subscribe )
abstract

订阅或取消订阅指定远端用户的视频主流。
加入房间后,默认不订阅所有远端用户的视频主流;若您希望看到指定远端用户的视频,可以在监听到对方加入房间或发布视频流之后,通过此方法订阅该用户的视频主流。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
参数说明
参数名称 类型 描述
uid long 指定用户的 ID。
streamType video.NERtcRemoteVideoStreamType 订阅的视频流类型:
  • kNERtcRemoteVideoStreamTypeHigh:高清画质的大流。
  • kNERtcRemoteVideoStreamTypeLow:低清画质的小流。
subscribe boolean 是否订阅远端用户的视频流:
  • true:订阅指定视频流。
  • false:不订阅指定视频流。
示例代码
//订阅对方 uid 为 12345 的大流
nrtcChannel.subscribeRemoteVideoStream(12345, NERtcRemoteVideoStreamType.kNERtcRemoteVideoStreamTypeHigh,true);
定义 NERtcRemoteVideoStreamType.java:8
kNERtcRemoteVideoStreamTypeHigh
定义 NERtcRemoteVideoStreamType.java:18
相关接口
若您希望订阅指定远端用户的视频辅流,请调用 NERtcEx#subscribeRemoteSubStreamVideo() 方法。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化或未加入房间。
    • 30009(ENGINE_ERROR_INVALID_DEVICE_SOURCEID):设备 ID 非法。
    • 30105(ENGINE_ERROR_USER_NOT_FOUND):未找到指定用户。
    • 30106(ENGNE_ERROR_INVALID_USERID):非法指定用户,比如订阅了本端。
    • 30107(ENGINE_ERROR_MEDIA_NOT_STARTED):媒体会话未建立,比如对端未开启视频主流。
    • 30108(ENGINE_ERROR_SOURCE_NOT_FOUND):媒体源未找到,比如对端未开启视频主流。

◆ switchCamera()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.switchCamera ( )
abstract

切换前置/后置摄像头。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。

返回
0 方法调用成功,其他调用失败

◆ switchCameraWithPosition()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.switchCameraWithPosition ( int cameraPos)
abstract

指定前置/后置摄像头。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。

参数
cameraPos相机类型。详细信息请参考 NERtcConstants.CameraPosition。该参数为必填参数,若未赋值,SDK 会报错。
返回
0 方法调用成功,其他调用失败

◆ takeLocalSnapshot()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.takeLocalSnapshot ( NERtcVideoStreamType streamType,
NERtcTakeSnapshotCallback callback )
abstract

本地视频画面截图。 调用 takeLocalSnapshot 截取本地主流或本地辅流的视频画面,并通过 NERtcTakeSnapshotCallback 的 onTakeSnapshotResult 回调返回截图画面的数据。

注解
  • 本地主流截图,需要在 startVideoPreview 或者 enableLocalVideo 并 joinChannel 成功之后调用。
  • 本地辅流截图,需要在 joinChannel 并 startScreenCapture 之后调用。
  • 同时设置文字、时间戳或图片水印时,如果不同类型的水印位置有重叠,会按照图片、文本、时间戳的顺序进行图层覆盖。
参数
streamType截图的视频流类型。详细信息请参考 video.NERtcVideoStreamType
callback截图回调。详细信息请参考 video.NERtcTakeSnapshotCallback
返回
0 方法调用成功,其他调用失败。

◆ takeRemoteSnapshot()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.takeRemoteSnapshot ( long uid,
NERtcVideoStreamType streamType,
NERtcTakeSnapshotCallback callback )
abstract

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

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

◆ updateChannelMediaRelay()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.updateChannelMediaRelay ( NERtcMediaRelayParam.ChannelMediaRelayConfiguration config)
abstract

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

  • 成功开始跨房间转发媒体流后,如果您需要修改目标房间,例如添加或删减目标房间等,可以调用此方法。
  • 成功调用此方法后,SDK 会触发 onMediaRelayStatesChange 和 onMediaRelayReceiveEvent 回调,并在回调中报告当前的跨房间媒体流转发状态和事件。
    注解
  • 请在加入房间并成功调用 startChannelMediaRelay 开始跨房间媒体流转发后,调用此方法。调用此方法前需要通过 config 中的 setDestChannelInfo 设置目标房间。
  • 跨房间媒体流转发最多支持 4 个目标房间,您可以在调用该方法之前,通过 ChannelMediaRelayConfiguration 中的 removeDestChannelInfo 方法移除不需要的房间,再添加新的目标房间。
    参数
    config跨房间媒体流转发参数配置信息。详细信息请参考 NERtcMediaRelayParam.ChannelMediaRelayConfiguration
    返回
    0 方法调用成功,其他调用失败。

◆ updateLiveStreamTask()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.updateLiveStreamTask ( NERtcLiveStreamTaskInfo taskInfo,
UpdateLiveTaskCallback updateLiveTaskCallback )
abstract

更新房间内指定推流任务。 通过此接口可以实现调整指定推流任务的编码参数、画布布局、推流模式等。

自从
V3.5.0
使用前提
请先调用 NERtcChannel#addLiveStreamTask() 方法添加推流任务。
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
注解
仅角色为主播的房间成员能调用此接口,观众成员无相关推流权限。
参数说明
参数名称 类型 描述
taskInfo live.NERtcLiveStreamTaskInfo 推流任务信息。
updateLiveTaskCallback live.UpdateLiveTaskCallback 操作结果回调,方法调用成功后会触发对应的 UpdateLiveTaskCallback#onUpdateLiveStreamTask() 回调。
示例代码
UpdateLiveTaskCallback updateLiveTaskCallback = new UpdateLiveTaskCallback() {
@Override
public void onUpdateLiveStreamTask(String taskId, int errCode) {
}
};
taskInfo.taskId = "xxxx";
taskInfo.url ="xxx";
// ...... 其他更多参数
nrtcChannel.updateLiveStreamTask(taskInfo, updateCallback);
定义 UpdateLiveTaskCallback.java:8
相关回调
AddLiveTaskCallback#onAddLiveStreamTask() :推流任务已成功删除回调。 NERtcChannelCallback#onLiveStreamState():推流任务状态已改变回调。
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。
    • 403(RESERVE_ERROR_NO_PERMISSION):权限不足,观众模式下不支持此操作。
    • 30003(ENGINE_ERROR_INVALID_PARAM): 参数错误。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ updatePermissionKey()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.updatePermissionKey ( String key)
abstract

更新权限密钥。

  • 通过此接口可以实现当用户权限被变更,或者收到权限密钥即将过期的回调时,更新权限密钥。
    自从
    V4.6.29
    使用前提
    请确保已开通高级 Token 鉴权功能,具体请联系网易云信商务经理。
    调用时机
    请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
    业务场景
    适用于变更指定用户加入、创建房间或上下麦时发布流相关权限的场景。
    注解
    子房间场景中,暂不支持 onUpdatePermissionKey 和 onPermissionKeyWillExpire 回调,建议在主房间中使用 NERtc#updatePermissionKey()
    参数说明
    参数名称 类型 描述
    key String 新的权限密钥。
    示例代码
    //getPermToken 为获取高级密钥方法,由您自行实现,具体请参考官方文档的高级 Token 鉴权章节。</a>
    String permToken = getPermToken();
    nrtcChannel.updatePermissionKey(permToken);
    返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ updateSelfPosition()

abstract int com.netease.lava.nertc.sdk.channel.NERtcChannel.updateSelfPosition ( NERtcPositionInfo info)
abstract

设置空间音效中说话者和接收者的空间位置信息。SDK 会根据该方法中的参数计算接收者和说话者之间的相对位置,进而渲染出空间音效。

自从
V5.4.0
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 请先调用 EnableSpatializer() 接口启用空间音效,再调用本接口。
  • 调用 EnableSpatializer() 接口关闭空间音效后,空间位置信息会重置为默认值,您需要重新设置位置信息。
参数说明
通过 info 参数设置空间音效中说话者和接收者的空间位置信息。audio.NERtcSpatializerPositionInfo具体参数说明如下表所示。
参数名称 描述
mSpeakerPosition 说话者的位置信息,三个值依次表示 X、Y、Z 的坐标值。默认值{0,0,0}
mSpeakerQuaternion 说话者的旋转信息,通过四元组来表示,数据格式为{w, x, y, z}。默认值{0,0,0,0}
mHeadPosition 接收者的位置信息,三个值依次表示 X、Y、Z 的坐标值。默认值{0,0,0}
mHeadQuaternion 接收者的旋转信息,通过四元组来表示,数据格式为{w, x, y, z}。默认值{0,0,0,0}

返回
  • 0: 方法调用成功
  • 其他: 调用失败

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