NERtc Android SDK  V4.6.420
Public 成员函数 | 静态 Public 成员函数 | 所有成员列表
com.netease.lava.nertc.sdk.NERtcEx类 参考abstract
类 com.netease.lava.nertc.sdk.NERtcEx 继承关系图:
com.netease.lava.nertc.sdk.NERtc

Public 成员函数

abstract int muteLocalAudioStream (boolean mute)
 
abstract int muteLocalVideoStream (boolean mute)
 
abstract int muteLocalVideoStream (NERtcVideoStreamType streamType, boolean mute)
 
abstract int sendSEIMsg (String seiMsg, NERtcVideoStreamType streamType)
 
abstract int sendSEIMsg (String seiMsg)
 
abstract int switchCamera ()
 
abstract int getCurrentCamera ()
 
abstract boolean isCameraZoomSupported ()
 
abstract void setCameraZoomFactor (int zoomValue)
 
abstract int getCameraCurrentZoom ()
 
abstract int getCameraMaxZoom ()
 
abstract boolean isCameraTorchSupported ()
 
abstract int setCameraTorchOn (boolean on)
 
abstract boolean isCameraExposurePositionSupported ()
 
abstract int setCameraExposurePosition (float x, float y)
 
abstract boolean isCameraFocusSupported ()
 
abstract int setCameraFocusPosition (float x, float y)
 
abstract boolean isSpeakerphoneOn ()
 
abstract int setSpeakerphoneOn (boolean enable)
 
abstract int setAudioFocusMode (int focusMode)
 
abstract int startAudioDump ()
 
abstract int startAudioDumpWithType (int dumpType)
 
abstract int stopAudioDump ()
 
abstract int setAudioEffectPreset (int preset)
 
abstract int setVoiceBeautifierPreset (int preset)
 
abstract int setLocalVoicePitch (double pitch)
 
abstract int setLocalVoiceEqualization (int bandFrequency, int bandGain)
 
abstract int setLocalVoiceReverbParam (NERtcReverbParam param)
 
abstract int setupLocalSubStreamVideoCanvas (IVideoRender render)
 
abstract int setupRemoteSubStreamVideoCanvas (IVideoRender render, long uid)
 
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 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 setExternalAudioSource (boolean enabled, int sample_rate, int channels)
 
abstract int pushExternalAudioFrame (NERtcAudioExternalFrame frame)
 
abstract int setExternalAudioRender (boolean enable, int sampleRate, int channels)
 
abstract int pullExternalAudioFrame (ByteBuffer buffer, int len)
 
abstract void setVideoCallback (NERtcVideoCallback videoCallback, boolean textureWithI420)
 
abstract int setAudioFrameObserver (NERtcAudioFrameObserver observer)
 
abstract int setAudioProcessObserver (NERtcAudioProcessObserver audioProcessObserver)
 
abstract int setRecordingAudioFrameParameters (NERtcAudioFrameRequestFormat format)
 
abstract int setPlaybackAudioFrameParameters (NERtcAudioFrameRequestFormat format)
 
abstract int setMixedAudioFrameParameters (NERtcAudioFrameRequestFormat format)
 
abstract void postOnGLThread (Runnable runnable)
 
abstract void setStatsObserver (NERtcStatsObserver statsObserver)
 
abstract int enableAudioVolumeIndication (boolean enable, int interval)
 
abstract int enableAudioVolumeIndication (boolean enable, int interval, boolean enableVad)
 
abstract int adjustRecordingSignalVolume (int volume)
 
abstract int adjustPlaybackSignalVolume (int volume)
 
abstract int startAudioMixing (NERtcCreateAudioMixingOption option)
 
abstract int stopAudioMixing ()
 
abstract int pauseAudioMixing ()
 
abstract int resumeAudioMixing ()
 
abstract int setAudioMixingSendVolume (int volume)
 
abstract int getAudioMixingSendVolume ()
 
abstract int setAudioMixingPlaybackVolume (int volume)
 
abstract int getAudioMixingPlaybackVolume ()
 
abstract long getAudioMixingDuration ()
 
abstract long getAudioMixingCurrentPosition ()
 
abstract int setAudioMixingPosition (long position)
 
abstract int playEffect (int effectId, NERtcCreateAudioEffectOption option)
 
abstract int stopEffect (int effectId)
 
abstract int stopAllEffects ()
 
abstract int pauseEffect (int effectId)
 
abstract int resumeEffect (int effectId)
 
abstract int pauseAllEffects ()
 
abstract int resumeAllEffects ()
 
abstract int setEffectSendVolume (int effectId, int volume)
 
abstract int getEffectSendVolume (int effectId)
 
abstract int setEffectPlaybackVolume (int effectId, int volume)
 
abstract int getEffectPlaybackVolume (int effectId)
 
abstract int setEffectPosition (int effectId, long position)
 
abstract int enableEarback (boolean enabled, int volume)
 
abstract int setEarbackVolume (int volume)
 
abstract int setPlayoutDeviceMute (boolean enable)
 
abstract boolean isPlayoutDeviceMute ()
 
abstract int setRecordDeviceMute (boolean enable)
 
abstract boolean isRecordDeviceMute ()
 
abstract void uploadSdkInfo ()
 
abstract int addLiveStreamTask (NERtcLiveStreamTaskInfo taskInfo, AddLiveTaskCallback addLiveTaskCallback)
 
abstract int updateLiveStreamTask (NERtcLiveStreamTaskInfo taskInfo, UpdateLiveTaskCallback updateLiveTaskCallback)
 
abstract int removeLiveStreamTask (String taskId, DeleteLiveTaskCallback deleteLiveTaskCallback)
 
abstract int setChannelProfile (int channelProfile)
 
abstract int enableDualStreamMode (boolean enable)
 
abstract int getConnectionState ()
 
abstract int setClientRole (int role)
 
abstract int setLocalCanvasWatermarkConfigs (NERtcVideoStreamType type, NERtcCanvasWatermarkConfig config)
 
abstract int setRemoteCanvasWatermarkConfigs (long uid, NERtcVideoStreamType type, NERtcCanvasWatermarkConfig config)
 
abstract int takeLocalSnapshot (NERtcVideoStreamType streamType, NERtcTakeSnapshotCallback callback)
 
abstract int takeRemoteSnapshot (long uid, NERtcVideoStreamType streamType, NERtcTakeSnapshotCallback callback)
 
abstract int switchChannel (String token, String channelName)
 
abstract int switchChannel (String token, String channelName, NERtcJoinChannelOptions channelOptions)
 
abstract int startAudioRecording (String filePath, int sampleRate, int quality)
 
abstract int startAudioRecordingWithConfig (NERtcAudioRecordingConfiguration audioRecordConfig)
 
abstract int stopAudioRecording ()
 
abstract int setLocalMediaPriority (int priority, boolean isPreemptive)
 
abstract int startChannelMediaRelay (NERtcMediaRelayParam.ChannelMediaRelayConfiguration config)
 
abstract int updateChannelMediaRelay (NERtcMediaRelayParam.ChannelMediaRelayConfiguration config)
 
abstract int stopChannelMediaRelay ()
 
abstract int adjustUserPlaybackSignalVolume (long uid, int volume)
 
abstract int reportCustomEvent (String eventName, String customIdentify, HashMap< String, Object > param)
 
abstract int setLocalPublishFallbackOption (int option)
 
abstract int setRemoteSubscribeFallbackOption (int option)
 
abstract long getEffectDuration (int effectId)
 
abstract long getEffectCurrentPosition (int effectId)
 
abstract int enableSuperResolution (boolean enable)
 
abstract int enableEncryption (boolean enable, NERtcEncryptionConfig config)
 
abstract NERtcChannel createChannel (String channelName)
 
abstract int startLastmileProbeTest (LastmileProbeConfig config)
 
abstract int stopLastmileProbeTest ()
 
abstract int enableVideoCorrection (boolean enable)
 
abstract int setVideoCorrectionConfig (NERtcVideoCorrectionConfiguration config)
 
abstract int enableVirtualBackground (boolean enabled, NERtcVirtualBackgroundSource backgroundSource)
 
abstract int setRemoteHighPriorityAudioStream (boolean enabled, long uid)
 
abstract int setCloudProxy (int proxyType)
 
abstract int startBeauty ()
 
abstract void stopBeauty ()
 
abstract int enableBeauty (boolean enable)
 
abstract int setBeautyEffect (NERtcBeautyEffectType beautyType, float level)
 
abstract int addBeautyFilter (String path)
 
abstract void removeBeautyFilter ()
 
abstract int setBeautyFilterLevel (float level)
 
abstract int addBeautySticker (String path)
 
abstract void removeBeautySticker ()
 
abstract int addBeautyMakeup (String path)
 
abstract void removeBeautyMakeup ()
 
abstract int setLocalVideoWatermarkConfigs (NERtcVideoStreamType type, NERtcVideoWatermarkConfig config)
 
abstract int switchCameraWithPosition (int cameraPos)
 
abstract int setAudioSubscribeOnlyBy (long[] uidArray)
 
abstract int enableLocalSubStreamAudio (boolean enable)
 
abstract int subscribeRemoteSubStreamAudio (long uid, boolean subscribe)
 
abstract void setStreamAlignmentProperty (boolean enable)
 
abstract long getNtpTimeOffset ()
 
abstract int muteLocalSubStreamAudio (boolean mute)
 
abstract int setExternalSubStreamAudioSource (boolean enabled, int sampleRate, int channels)
 
abstract int pushExternalSubStreamAudioFrame (NERtcAudioExternalFrame frame)
 
abstract int enableMediaPub (int mediaType, boolean enable)
 
abstract int setPreDecodeObserver (NERtcPreDecodeObserver observer)
 
abstract int pushExternalVideoEncodedFrame (NERtcVideoStreamType streamType, NERtcVideoEncodedFrame encodedVideoFrame)
 
abstract int pushExternalAudioEncodedFrame (NERtcAudioEncodedFrame encodedAudioFrame)
 
abstract int pushExternalSubStreamAudioEncodedFrame (NERtcAudioEncodedFrame encodedAudioFrame)
 
abstract int setVideoEncoderQosObserver (NERtcVideoEncoderQosObserver encoderQosObserver)
 
abstract int setAudioMixingPitch (int pitch)
 
abstract int getAudioMixingPitch ()
 
abstract int setEffectPitch (int effectId, int pitch)
 
abstract int getEffectPitch (int effectId)
 
abstract int setNERtcCallback (NERtcCallback callback)
 
abstract int startPushStreaming (NERtcPushStreamingConfig config)
 
abstract int stopPushStreaming ()
 
- Public 成员函数 继承自 com.netease.lava.nertc.sdk.NERtc
abstract void init (Context context, String appkey, NERtcCallback callback, NERtcOption option) throws Exception
 
abstract void release ()
 
abstract int joinChannel (String token, String channelName, long uid)
 
abstract int updatePermissionKey (String key)
 
abstract int joinChannel (String token, String channelName, long uid, NERtcJoinChannelOptions channelOptions)
 
abstract int leaveChannel ()
 
abstract int enableLocalAudio (boolean enable)
 
abstract int subscribeRemoteAudioStream (long uid, boolean subscribe)
 
abstract int subscribeAllRemoteAudioStreams (boolean subscribe)
 
abstract int setAudioProfile (int profile, int scenario)
 
abstract int setLocalVideoConfig (NERtcVideoConfig videoConfig)
 
abstract int setLocalVideoConfig (NERtcVideoConfig videoConfig, NERtcVideoStreamType streamType)
 
abstract int setCameraCaptureConfig (NERtcCameraCaptureConfig captureConfig)
 
abstract int setCameraCaptureConfig (NERtcCameraCaptureConfig captureConfig, NERtcVideoStreamType streamType)
 
abstract int startVideoPreview ()
 
abstract int startVideoPreview (NERtcVideoStreamType streamType)
 
abstract int stopVideoPreview ()
 
abstract int stopVideoPreview (NERtcVideoStreamType streamType)
 
abstract int setupLocalVideoCanvas (IVideoRender render)
 
abstract int setupRemoteVideoCanvas (IVideoRender render, long uid)
 
abstract int enableLocalVideo (boolean enable)
 
abstract int enableLocalVideo (NERtcVideoStreamType streamType, boolean enable)
 
abstract int subscribeRemoteVideoStream (long uid, NERtcRemoteVideoStreamType streamType, boolean subscribe)
 
abstract void setParameters (NERtcParameters params) throws IllegalArgumentException
 
abstract String getParameter (String parameterKey, String extraInfo)
 

静态 Public 成员函数

static NERtcEx getInstance ()
 
- 静态 Public 成员函数 继承自 com.netease.lava.nertc.sdk.NERtc
static NERtcVersion version ()
 
static List< String > checkPermission (Context context)
 

详细描述

NERtcEx

成员函数说明

◆ addBeautyFilter()

abstract int com.netease.lava.nertc.sdk.NERtcEx.addBeautyFilter ( String  path)
abstract

添加滤镜效果。
通过此接口可以实现加载滤镜资源,并添加对应的滤镜效果;若您需要更换滤镜,重复调用此接口使用新的滤镜资源即可。

自从
V4.6.10
使用前提
请先调用 NERtcEx#startBeauty() 方法开启美颜功能模块。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 使用滤镜、贴纸和美妆等自定义美颜效果之前,请联系商务经理获取美颜资源或模型。
  • 滤镜效果可以和全局美颜、贴纸、美妆等效果互相叠加,但是不支持叠加多个滤镜。
参数说明
参数名称 类型 描述
path String 滤镜资源或模型所在路径。支持 SD 卡上的绝对路径,或 asset 目录下的相对路径:
  • SD卡:"/storage/emulated/0/Android/data/com.netease.lava.nertc.demo/files/filter_portrait/filter_style_FN1"。
  • asset: "2D/bunny"。
示例代码
NERtcEx.getInstance().addBeautyFilter(path);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):无效参数。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ addBeautyMakeup()

abstract int com.netease.lava.nertc.sdk.NERtcEx.addBeautyMakeup ( String  path)
abstract

(此接口为 beta 版本)添加美妆效果。
此接口用于加载美妆模型,添加对应的美妆效果。需要更换美妆效果时,重复调用此接口使用新的美妆模型即可。

注解
  • 使用滤镜、贴纸和美妆等自定义美颜效果之前,需要先准备好对应的美颜资源或模型。
  • 美妆效果可以和全局美颜、滤镜、贴纸等效果互相叠加,但是不支持叠加多个美妆效果。
自从
V4.2.202
参数
path美妆模型所在路径。支持 SD 卡上的绝对路径,或 asset 目录下的相对路径。
  • SD卡:"/storage/emulated/0/Android/data/com.netease.lava.nertc.demo/files/filter_portrait/filter_style_FN1"
  • asset: "2D/bunny"
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ addBeautySticker()

abstract int com.netease.lava.nertc.sdk.NERtcEx.addBeautySticker ( String  path)
abstract

(此接口为 beta 版本)添加贴纸效果。
此接口用于加载贴纸资源,添加对应的贴纸效果。需要更换贴纸时,重复调用此接口使用新的贴纸资源即可。

注解
  • 使用滤镜、贴纸和美妆等自定义美颜效果之前,需要先准备好对应的美颜资源或模型。
  • 贴纸效果可以和全局美颜、滤镜、美妆等效果互相叠加,但是不支持叠加多个贴纸。
自从
V4.2.202
参数
path贴纸资源所在路径。支持 SD 卡上的绝对路径,或 asset 目录下的相对路径。
  • SD卡:"/storage/emulated/0/Android/data/com.netease.lava.nertc.demo/files/filter_portrait/filter_style_FN1"
  • asset: "2D/bunny"
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ addLiveStreamTask()

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

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

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

◆ adjustLoopBackRecordingSignalVolume()

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

调整共享音频音量。

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

◆ adjustPlaybackSignalVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.adjustPlaybackSignalVolume ( int  volume)
abstract

调节本地播放的所有远端用户的信号音量。
通过此接口可以实现调节所有远端用户在本地播放的混音音量。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
建议设置本地播放音量时使用默认值(100)或小于该值,否则可能会导致音质问题。
参数说明
参数名称 类型 描述
volume int 播放音量,取值范围为 [0,400]。
  • 0:静音。
  • 100:原始音量。
  • 400:最大可为原始音量的 4 倍(自带溢出保护)。
示例代码
//调整所有远端用户在本地的播放音量为50
NERtcEx.getInstance().adjustPlaybackSignalVolume(50);
//调整所有远端用户在本地的播放音量为0,静音所有用户
NERtcEx.getInstance().adjustPlaybackSignalVolume(0);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化。

◆ adjustRecordingSignalVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.adjustRecordingSignalVolume ( int  volume)
abstract

调节采集信号音量。 通过本接口可以实现设置录制声音的信号幅度,从而达到调节采集音量的目的。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后设置失效,将恢复至默认。
  • 建议设置本地采集音量为默认值(100)或小于该值,否则可能会导致音质问题。
  • 该方法仅设置应用程序中的采集信号音量,不修改设备音量,也不会影响伴音、音效等的音量;若您需要修改设备音量,请调用设备管理相关接口。
参数说明
参数名称 类型 描述
volume int 采集信号音量,取值范围为 0 ~ 400。
  • 0:静音。
  • 100(默认):原始音量。
  • 400:最大音量值(自带溢出保护)。
示例代码
//将采集音量设置为100
NERtcEx.getInstance().adjustRecordingSignalVolume(100);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_ERROR):引擎未初始化。

◆ adjustUserPlaybackSignalVolume()

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

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

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

◆ createChannel()

abstract NERtcChannel com.netease.lava.nertc.sdk.NERtcEx.createChannel ( String  channelName)
abstract

创建并获取一个 NERtcChannel 对象。

  • 你可以多次调用该方法,创建多个 NERtcChannel 对象,再调用各 NERtcChannel 对象中的 joinChannel 方法,实现同时加入多房间。
  • 加入多个房间后,你可以同时订阅各个房间的音、视频流;但是同一时间只能在一个房间发布一路音、视频流。
    参数
    channelName房间名称,设置相同房间名称的用户会进入同一个通话房间。
  • 字符串格式,长度为 1~64 字节。
  • 支持以下89个字符:a-z, A-Z, 0-9, space, !#$%&()+-:;≤.,>?@[]^_{|}~”
    返回
    方法调用成功,返回 channel.NERtcChannel 对象。方法调用失败,返回null。

◆ enableAudioVolumeIndication() [1/2]

abstract int com.netease.lava.nertc.sdk.NERtcEx.enableAudioVolumeIndication ( boolean  enable,
int  interval 
)
abstract

启用说话者音量提示。
通过此接口可以实现允许 SDK 定期向 App 反馈房间内发音频流的用户和瞬时音量最高的远端用户(最多 3 位,包括本端)的音量相关信息,即当前谁在说话以及说话者的音量。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
业务场景
适用于通过发言者的人声相关信息做出 UI 上的音量展示的场景,或根据发言者的音量大小进行视图布局的动态调整。
参数说明
参数名称 类型 描述
enable boolean 是否启用说话者音量提示:
  • true:启用说话者音量提示。
  • false:关闭说话者音量提示。
interval int 指定音量提示的时间间隔。单位为毫秒。必须设置为 100 毫秒的整数倍值,建议设置为 200 毫秒以上。
示例代码
//设置间隔为500ms的人声音量提示
NERtcEx.getInstance().enableAudioVolumeIndication(true, 500);
相关回调
启用该方法后,只要房间内有发流用户,无论是否有人说话,SDK 都会在加入房间后根据预设的时间间隔触发 NERtcCallbackEx#onRemoteAudioVolumeIndication() 回调。
相关接口
若您希望在返回音量相关信息的同时检测是否有真实人声存在,请调用 NERtcEx#enableAudioVolumeIndication(boolean enable, int interval, boolean enableVad) 方法。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30001(ENGINE_ERROR_FATAL):内部错误,比如音频相关模块未初始化成功。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如时间间隔小于 100ms。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化。

◆ enableAudioVolumeIndication() [2/2]

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

启用说话者音量提示。
通过此接口可以实现允许 SDK 定期向 App 反馈房间内发音频流的用户和瞬时音量最高的远端用户(最多 3 位,包括本端)的音量相关信息,即当前谁在说话以及说话者的音量。

自从
V4.6.10
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
业务场景
适用于通过发言者的人声相关信息做出 UI 上的音量展示的场景,或根据发言者的音量大小进行视图布局的动态调整。
参数说明
参数名称 类型 描述
enable boolean 是否启用说话者音量提示:
  • true:启用说话者音量提示。
  • false:关闭说话者音量提示。
interval int 指定音量提示的时间间隔。单位为毫秒。必须设置为 100 毫秒的整数倍值,建议设置为 200 毫秒以上。
enableVad boolean 是否启用本地采集人声监测:
  • true:启用本地采集人声监测。
  • false:关闭本地采集人声监测。
示例代码
//设置间隔为500ms的人声音量提示
NERtcEx.getInstance().enableAudioVolumeIndication(true, 500, false);
相关回调
启用该方法后,只要房间内有发流用户,无论是否有人说话,SDK 都会在加入房间后根据预设的时间间隔触发 NERtcCallbackEx#onRemoteAudioVolumeIndication() 回调。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30001(ENGINE_ERROR_FATAL):内部错误,比如音频相关模块未初始化成功。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如时间间隔小于 100ms。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化。

◆ enableBeauty()

abstract int com.netease.lava.nertc.sdk.NERtcEx.enableBeauty ( boolean  enable)
abstract

暂停或恢复美颜效果。
通过此接口实现取消美颜效果后,包括全局美颜、滤镜在内的所有美颜效果都会暂时关闭,直至重新恢复美颜效果。

自从
V4.6.10
使用前提
请先调用 NERtcEx#startBeauty() 方法开启美颜功能模块。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
参数说明
参数名称 类型 描述
enable boolean 是否恢复美颜效果:
  • true:恢复美颜效果。
  • false:取消美颜效果。
示例代码
NERtcEx.getInstance().enableBeauty(true);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ enableDualStreamMode()

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

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

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

◆ enableEarback()

abstract int com.netease.lava.nertc.sdk.NERtcEx.enableEarback ( boolean  enabled,
int  volume 
)
abstract

设置是否开启耳返功能。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
注解
  • 加入房间后,耳返功能可以随时开启,但只有当插入耳机或耳麦时,耳返功能才会生效;当拔出耳机或耳麦时会自动暂停,再次插入耳机或耳麦自动恢复,且耳返功能可以实时关闭。
  • 若您使用的是 V4.0.0 版本的 SDK,请注意此版本该方法的 volume 参数无效,请调用 NERtcEx#setEarbackVolume() 接口设置耳返音量。
参数说明
参数名称 类型 描述
enabled boolean 是否开启耳返功能:
  • true:开启耳返。
  • false:关闭耳返。
volume int 设置耳返音量。取值范围为 0 ~ 100,默认值为 100。
示例代码
//开启耳返并设置耳返音量为 100
NERtcEx.getInstance().enableEarback(true, 100);
相关回调
建议通过 NERtcCallbackEx#onAudioDeviceChanged() 回调监听播放设备的变化,当监听到播放设备切换为耳机时才开启耳返功能。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ enableEncryption()

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

开启或关闭媒体流加密。

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

◆ enableLocalSubStreamAudio()

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

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

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

◆ enableLoopbackRecording()

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

开启或关闭音频共享。

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

◆ enableMediaPub()

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

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

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

◆ enableSuperResolution()

abstract int com.netease.lava.nertc.sdk.NERtcEx.enableSuperResolution ( boolean  enable)
abstract

启用或停止 AI 超分。

自从
V4.4.0
注解
  • 使用 AI 超分功能之前,请联系技术支持开通 AI 超分功能。
  • AI 超分仅对以下类型的视频流有效:
    • 必须为本端接收到第一路 360P 的视频流。
    • 必须为摄像头采集到的主流大流视频。AI 超分功能暂不支持复原重建小流和屏幕共享辅流。
参数
enable是否启用 AI 超分。默认为关闭状态。
返回
0
方法调用成功,其他调用失败。

◆ enableVideoCorrection()

abstract int com.netease.lava.nertc.sdk.NERtcEx.enableVideoCorrection ( boolean  enable)
abstract

是否启用视频图像畸变矫正。

注解
  • 当使用相机去拍摄物体时,存在着一个从三维世界到二维图像的映射过程,这个过程中由于相机位置的变化和移动,会对拍摄物体的成像产生一定的形变影响。
  • 开启该功能时,根据合适的参数,可以通过算法把这个形变进行复原。
  • 使用该功能时,本地画布的渲染模式需要为 fit(即视频帧保持自身比例不变全部显示在当前视图中),否则矫正功能可能不会正常生效。
  • 矫正参数生效后,本地画面和对端看到的画面,均会是矫正以后的画面。
自从
V4.6.0
参数
enable是否开启视频图像矫正。
  • true:开启视频图像矫正。
  • false(默认):关闭视频图像矫正。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ enableVirtualBackground()

abstract int com.netease.lava.nertc.sdk.NERtcEx.enableVirtualBackground ( boolean  enabled,
NERtcVirtualBackgroundSource  backgroundSource 
)
abstract

开启/关闭虚拟背景。
启用虚拟背景功能后,您可以使用自定义背景图片替换本地用户的原始背景图片。
替换后,频道内所有用户都可以看到自定义背景图片。

注解
  • 您可以通过 NERtcCallbackEx#onVirtualBackgroundSourceEnabled() 回调查看虚拟背景是否开启成功或出错原因。
  • 建议您在满足以下条件的场景中使用该功能:
    • 采用高清摄像设备,环境光线均匀。
    • 捕获的视频图像整洁,用户肖像半长且基本无遮挡,并且背景是与用户衣服颜色不同的单一颜色。
  • 虚拟背景功能不支持在 Texture 格式的视频或通过 Push 方法从自定义视频源获取的视频中设置虚拟背景。
  • 若您设置背景图片为自定义本地图片,SDK 会在保证背景图片内容不变形的前提下,对图片进行一定程度上的缩放和裁剪,以适配视频采集分辨率。
自从
V4.6.10
参数
enabled设置是否开启虚拟背景。
  • true:开启。
  • false: 关闭。
backgroundSource自定义背景图片。详细信息请参考 video.NERtcVirtualBackgroundSource
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ getAudioMixingCurrentPosition()

abstract long com.netease.lava.nertc.sdk.NERtcEx.getAudioMixingCurrentPosition ( )
abstract

获取音乐文件的播放进度。
该方法获取当前伴奏播放进度,单位为毫秒。请在房间内调用该方法。

返回
音乐文件的播放位置,单位为毫秒。

◆ getAudioMixingDuration()

abstract long com.netease.lava.nertc.sdk.NERtcEx.getAudioMixingDuration ( )
abstract

获取伴奏时长。
该方法获取伴奏时长,单位为毫秒。

注解
  • 请在加入房间后调用该方法。
  • 伴音相关方法为异步加载,刚开始伴音时,如果立即调用此方法,获取到的伴奏时长可能为小于或等于 0 。如果遇到此类问题,请稍后重试。
返回
伴奏时长,单位为毫秒。

◆ getAudioMixingPitch()

abstract int com.netease.lava.nertc.sdk.NERtcEx.getAudioMixingPitch ( )
abstract

获取当前伴音文件的音调。

自从
V4.6.29
使用前提
请先调用 NERtcEx#startAudioMixing() 方法开启伴音。
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
示例代码
int pitch = NERtcEx.getInstance().getAudioMixingPitch();
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如找不到对应的伴音任务或引擎尚未初始化。

◆ getAudioMixingPlaybackVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.getAudioMixingPlaybackVolume ( )
abstract

获取伴奏播放音量。
该方法获取混音里伴奏的播放音量大小。请在房间内调用该方法。

返回
当前伴奏播放音量。

◆ getAudioMixingSendVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.getAudioMixingSendVolume ( )
abstract

获取伴奏发送音量。
该方法获取混音里伴奏的发送音量大小。请在房间内调用该方法。

返回
当前伴奏发送音量。

◆ getCameraCurrentZoom()

abstract int com.netease.lava.nertc.sdk.NERtcEx.getCameraCurrentZoom ( )
abstract

获取当前摄像头缩放比例。

返回
当前缩放比例。

◆ getCameraMaxZoom()

abstract int com.netease.lava.nertc.sdk.NERtcEx.getCameraMaxZoom ( )
abstract

获取摄像头支持的最大缩放比例。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。

返回
摄像头支持的最大视频缩放比例。

◆ getConnectionState()

abstract int com.netease.lava.nertc.sdk.NERtcEx.getConnectionState ( )
abstract

获取当前房间连接状态。

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

◆ getCurrentCamera()

abstract int com.netease.lava.nertc.sdk.NERtcEx.getCurrentCamera ( )
abstract

查看当前摄像头配置。

  • 该方法用于查看当前使用的摄像头为前置摄像头还是后置摄像头。
  • 该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。
    自从
    V4.5.0
    返回
  • 0
    :后置摄像头
  • 其他值:前置摄像头

◆ getEffectCurrentPosition()

abstract long com.netease.lava.nertc.sdk.NERtcEx.getEffectCurrentPosition ( int  effectId)
abstract

获取音效的播放进度。

自从
V4.4.0 该方法获取当前音效播放进度,单位为毫秒。
注解
请在房间中调用该方法。
参数
effectId音效 ID。
返回
音效的播放进度,单位为毫秒。

◆ getEffectDuration()

abstract long com.netease.lava.nertc.sdk.NERtcEx.getEffectDuration ( int  effectId)
abstract

获取音效文件时长。

自从
V4.4.0 该方法获取音效文件时长,单位为毫秒。
注解
请在房间内调用该方法。
参数
effectId音效 ID。
返回
音效文件时长,单位为毫秒。

◆ getEffectPitch()

abstract int com.netease.lava.nertc.sdk.NERtcEx.getEffectPitch ( int  effectId)
abstract

获取指定音效文件的音调。

自从
V4.6.29
使用前提
请先调用 NERtcEx#playEffect() 方法播放音效。
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
参数说明
参数名称 类型 描述
effectId int 指定音效文件的 ID。每个音效文件均对应唯一的 ID。

示例代码
int getPitch = NERtcEx.getInstance().getEffectPitch(mAudioEffectId1);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如找不到对应的伴音任务或引擎尚未初始化。

◆ getEffectPlaybackVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.getEffectPlaybackVolume ( int  effectId)
abstract

获取音效文件播放音量。
请在加入房间后调用该方法。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
返回
0
方法调用成功,其他失败。

◆ getEffectSendVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.getEffectSendVolume ( int  effectId)
abstract

获取指定音效文件发送音量。
请在加入房间后调用该方法。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
返回
音效发送音量。

◆ getInstance()

static NERtcEx com.netease.lava.nertc.sdk.NERtcEx.getInstance ( )
static

获取 NERtc 实例。

返回
NERtc 实例

重载 com.netease.lava.nertc.sdk.NERtc .

◆ getNtpTimeOffset()

abstract long com.netease.lava.nertc.sdk.NERtcEx.getNtpTimeOffset ( )
abstract

获取本地系统时间与服务端时间差值。
可以用于做时间对齐,通过 (System.currentTimeMillis() - offset) 可能得到当前服务端时间。

自从
V4.6.10
返回
本地与服务端时间差值,单位为毫秒(ms)。如果没有成功加入音视频房间,返回 0。

◆ isCameraExposurePositionSupported()

abstract boolean com.netease.lava.nertc.sdk.NERtcEx.isCameraExposurePositionSupported ( )
abstract

检测设备是否支持手动曝光功能。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。

返回
true:设置支持手动曝光功能;false:设备不支持手动曝光功能。

◆ isCameraFocusSupported()

abstract boolean com.netease.lava.nertc.sdk.NERtcEx.isCameraFocusSupported ( )
abstract

检测设备是否支持手动对焦功能。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。

返回
true:设备支持手动对焦功能;false:设备不支持手动对焦功能。

◆ isCameraTorchSupported()

abstract boolean com.netease.lava.nertc.sdk.NERtcEx.isCameraTorchSupported ( )
abstract

检测设备是否支持闪光灯常亮。

注解
  • 一般情况下,App 默认开启前置摄像头,因此如果设备前置摄像头不支持闪光灯,直接使用该方法会返回 false。如果需要检查后置摄像头是否支持闪光灯,需要先使用 switchCamera 切换摄像头,再使用该方法。
  • 该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。
返回
true:设备支持闪光灯常亮; false:设备不支持闪光灯常亮。

◆ isCameraZoomSupported()

abstract boolean com.netease.lava.nertc.sdk.NERtcEx.isCameraZoomSupported ( )
abstract

检测设备当前使用的摄像头是否支持缩放功能。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。

返回
true:设备支持摄像头缩放功能; false: 设备不支持摄像头缩放功能。

◆ isPlayoutDeviceMute()

abstract boolean com.netease.lava.nertc.sdk.NERtcEx.isPlayoutDeviceMute ( )
abstract

查看当前音频播放设备是否静音。

返回
true:静音;- false:未静音。

◆ isRecordDeviceMute()

abstract boolean com.netease.lava.nertc.sdk.NERtcEx.isRecordDeviceMute ( )
abstract

查看当前音频采集设备是否静音。

返回
true:静音;false:未静音。

◆ isSpeakerphoneOn()

abstract boolean com.netease.lava.nertc.sdk.NERtcEx.isSpeakerphoneOn ( )
abstract

检查扬声器状态启用状态。

注解
该方法可在加入房间前后调用。
返回
扬声器是否开启。
  • true:扬声器已开启,语音输出到扬声器。
  • false:扬声器未开启,语音输出到其他音频设备,例如听筒、耳机等。

◆ muteLocalAudioStream()

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

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

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后恢复至默认(非静音)。
参数说明
参数名称 类型 描述
mute boolean 是否关闭本地音频的发送:
  • true:不发送本地音频。
  • false:发送本地音频。
示例代码
//不发送本地音频
NERtcEx.getInstance().muteLocalAudioStream(true);
//发送本地音频
NERtcEx.getInstance().muteLocalAudioStream(false);
相关回调
若本地用户在说话,成功调用该方法后,房间内其他用户会收到 AbsNERtcCallbackEx#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.NERtcEx.muteLocalSubStreamAudio ( boolean  mute)
abstract

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

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

◆ muteLocalVideoStream() [1/2]

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

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

自从
V3.5.0
使用前提
一般在通过 NERtc#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable)(true) 接口开启本地视频采集并发送后调用该方法。
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
注解
参数说明
参数名称 类型 描述
mute boolean 是否取消发布本地视频流:
  • true:取消发布本地视频流。
  • false:恢复发布本地视频流。
示例代码
NERtcEx.getInstance().muteLocalVideoStream(mute);
相关回调
调用此接口成功后,远端会触发 NERtcCallbackEx#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.NERtcEx.muteLocalVideoStream ( NERtcVideoStreamType  streamType,
boolean  mute 
)
abstract

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

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

◆ pauseAllEffects()

abstract int com.netease.lava.nertc.sdk.NERtcEx.pauseAllEffects ( )
abstract

暂停播放所有音效文件。
请在加入房间后调用该方法。

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

◆ pauseAudioMixing()

abstract int com.netease.lava.nertc.sdk.NERtcEx.pauseAudioMixing ( )
abstract

暂停伴音。
通过此接口可以实现暂停播放伴音文件。

自从
V3.5.0
使用前提
请先调用 NERtcEx#startAudioMixing() 开启伴音。
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
示例代码
NERtcEx.getInstance().pauseAudioMixing();
相关接口
可以继续调用 NERtcEx#resumeAudioMixing() 方法恢复播放伴音文件。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化或当前未在播放伴音。

◆ pauseEffect()

abstract int com.netease.lava.nertc.sdk.NERtcEx.pauseEffect ( int  effectId)
abstract

暂停播放指定音效文件。
请在加入房间后调用该方法。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
返回
0
方法调用成功,其他失败。

◆ playEffect()

abstract int com.netease.lava.nertc.sdk.NERtcEx.playEffect ( int  effectId,
NERtcCreateAudioEffectOption  option 
)
abstract

播放指定音效文件。 通过此接口可以实现播放指定的本地或在线音效文件。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
注解
支持的音效文件类型包括 MP3、M4A、AAC、3GP、WMA 和 WAV 格式,支持本地文件和在线 URL。 您可以多次调用该方法,通过传入不同音效文件的 effectId 和 option,同时播放多个音效文件,实现音效叠加;但是为获得最佳用户体验,建议同时播放不超过 3 个音效文件。 若通过此接口成功播放某指定音效文件后,反复停止或重新播放该 effectId 对应的音效文件,仅首次播放时设置的 option 有效,后续的 option 设置无效。
参数说明
参数名称 类型 描述
effectId int 指定音效的 ID。每个音效均应有唯一的 ID。
option audio.NERtcCreateAudioEffectOption 音效相关参数,包括混音任务类型、混音文件路径等。
示例代码
NERtcCreateAudioEffectOption option = new NERtcCreateAudioEffectOption();
option.path = mAudioEffectPath;
option.playbackEnabled = mAudioEffectPlay;
option.playbackVolume = mAudioEffectPlayVolume;
option.sendEnabled = mAudioEffectSend;
option.sendVolume = mAudioEffectSendVolume;
option.loopCount = mAudioEffectLoopCount;
mAudioEffectId = 1;
int ret = NERtcEx.getInstance().playEffect(mAudioEffectId, option);
相关接口
NERtcCallbackEx#onAudioEffectTimestampUpdate():本地音效文件播放进度回调。 NERtcCallbackEx#onAudioEffectFinished():本地音效文件播放已结束回调。
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ postOnGLThread()

abstract void com.netease.lava.nertc.sdk.NERtcEx.postOnGLThread ( Runnable  runnable)
abstract

将操作设置到具有GLContext的线程中。
第三方滤镜时需要用到,例如销毁第三方滤镜资源。

参数
runnable具体操作任务。

◆ pullExternalAudioFrame()

abstract int com.netease.lava.nertc.sdk.NERtcEx.pullExternalAudioFrame ( ByteBuffer  buffer,
int  len 
)
abstract

拉取外部音频数据。
该方法将从内部引擎拉取音频数据。 通过 setExternalAudioRender 启用外部音频数据渲染功能成功后,可以使用 pullExternalAudioFrame 接口获取音频 PCM 数据。

注解
  • 该方法需要在加入房间后调用。
  • 数据帧时长建议匹配 10ms 周期。
  • 该方法在音频渲染设备关闭后不再生效,此时会返回空数据。例如通话结束、通话前扬声器设备测试关闭等情况下,该设置不再生效。
参数
buffer需要填充的 buffer 数组。需要调用方创建,且必须使用 ByteBuffer.allocateDirect 创建。
len待拉取音频数据的字节数,单位为 byte。建议音频数据的时长至少为 10 毫秒,数据长度不能超过 7680字节。 计算公式为: len = sampleRate/1000 × 2 × channels × 音频数据时长(毫秒)。
返回
0
方法调用成功,其他调用失败

◆ pushExternalAudioEncodedFrame()

abstract int com.netease.lava.nertc.sdk.NERtcEx.pushExternalAudioEncodedFrame ( NERtcAudioEncodedFrame  encodedAudioFrame)
abstract

推送外部音频主流编码帧。

  • 通过此接口可以实现通过主流音频通道推送外部音频编码后的数据。
    自从
    V4.6.29
    使用前提
    该方法仅在设置 NERtcEx#setExternalAudioSource() 接口的 enable 参数为 true 后调用有效。
    调用时机
    请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
    业务场景
    适用于需要自行处理音频数据的采集与编码的场景。
    注解
  • 目前仅支持传输 OPUS 格式的音频数据。
  • 建议不要同时调用 NERtcEx#pushExternalAudioFrame() 方法。
  • 该方法在音频输入设备关闭后,例如在关闭本地音频、通话结束、通话前麦克风设备测试关闭等情况下,设置会恢复至默认。
    参数说明
    参数名称 类型 描述
    encodedAudioFrame audio.NERtcAudioEncodedFrame 编码后的音频帧数据。

    示例代码
    NERtcAudioEncodedFrame encodedFrame = new NERtcAudioEncodedFrame();
    encodedFrame.timeStampUs = 时间戳;
    encodedFrame.sampleRate = 采样率;
    encodedFrame.channels = 采样通道;
    encodedFrame.samplesPerChannel = 采样点;
    encodedFrame.encodedTimestamp = 编码时间戳;
    encodedFrame.payloadType = NERtcAudioEncodedFrame.NERtcAudioPayLoadType.AUDIO_PAY_LOAD_TYPE_OPUS;
    encodedFrame.encodedLen = 数据长度;
    int ret = NERtcEx.getInstance().pushExternalAudioEncodedFrame(encodedFrame);
    if (ret != NERtcConstants.ErrorCode.OK) {
    // error message
    }
    返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如传入对象为空。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化、音频未开启或当前为静音状态。

◆ pushExternalAudioFrame()

abstract int com.netease.lava.nertc.sdk.NERtcEx.pushExternalAudioFrame ( NERtcAudioExternalFrame  frame)
abstract

推送外部音频帧。
将外部音频数据帧推送给内部引擎。 通过 setExternalAudioSource 启用外部音频数据输入功能成功后,可以使用 pushExternalAudioFrame 接口发送音频 PCM 数据。

注解
  • 该方法需要在加入房间后调用。
  • 数据帧时长建议匹配 10ms 周期。
  • 该方法在音频输入设备关闭后不再生效。例如关闭本地音频、通话结束、通话前麦克风设备测试关闭等情况下,该设置不再生效。
参数
frame外部音频帧数据;数据长度不能超过 7680 字节,和调用周期时长一致。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ pushExternalSubStreamAudioEncodedFrame()

abstract int com.netease.lava.nertc.sdk.NERtcEx.pushExternalSubStreamAudioEncodedFrame ( NERtcAudioEncodedFrame  encodedAudioFrame)
abstract

推送外部音频辅流编码帧。

  • 通过此接口可以实现通过辅流音频通道推送外部音频编码后的数据。
    自从
    V4.6.29
    使用前提
    该方法仅在设置 NERtcEx#setExternalSubStreamAudioSource() 接口的 enable 参数为 true 后调用有效。
    调用时机
    请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
    业务场景
    适用于需要自行处理音频数据的采集与编码的场景。
    注解
  • 目前仅支持传输 OPUS 格式的音频数据。
  • 建议不要同时调用 NERtcEx#pushExternalSubStreamAudioFrame() 方法。
  • 该方法在音频输入设备关闭后,例如在关闭本地音频、通话结束、通话前麦克风设备测试关闭等情况下,设置会恢复至默认。
    参数说明
    参数名称 类型 描述
    encodedAudioFrame audio.NERtcAudioEncodedFrame 编码后的音频帧数据。

    示例代码
    NERtcAudioEncodedFrame encodedFrame = new NERtcAudioEncodedFrame();
    encodedFrame.timeStampUs = 时间戳;
    encodedFrame.sampleRate = 采样率;
    encodedFrame.channels = 采样通道;
    encodedFrame.samplesPerChannel = 采样点;
    encodedFrame.encodedTimestamp = 编码时间戳;
    encodedFrame.payloadType = NERtcAudioEncodedFrame.NERtcAudioPayLoadType.AUDIO_PAY_LOAD_TYPE_OPUS;
    encodedFrame.encodedLen = 数据长度;
    int ret = NERtcEx.getInstance().pushExternalSubStreamAudioEncodedFrame(encodedFrame);
    if (ret != NERtcConstants.ErrorCode.OK) {
    // error message
    }
    返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如传入对象为空。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化、音频未开启或当前为静音状态。

◆ pushExternalSubStreamAudioFrame()

abstract int com.netease.lava.nertc.sdk.NERtcEx.pushExternalSubStreamAudioFrame ( NERtcAudioExternalFrame  frame)
abstract

推送外部音频辅流数据帧。
将外部音频辅流帧数据帧主动推送给内部引擎。通过 NERtcEx#enableLocalSubStreamAudio(boolean) 启用音频辅流后,可以调用此接口发送音频辅流 PCM 数据。

注解
  • 该方法需要在加入房间后调用。
  • 数据帧时长建议匹配 10ms 周期。
  • 该方法在音频辅流关闭后不再生效。
自从
V4.6.10
参数
frame音频帧数据。
返回
  • 0: 方法调用成功。
  • 其他: 方法调用失败。

◆ pushExternalVideoEncodedFrame()

abstract int com.netease.lava.nertc.sdk.NERtcEx.pushExternalVideoEncodedFrame ( NERtcVideoStreamType  streamType,
NERtcVideoEncodedFrame  encodedVideoFrame 
)
abstract

推送外部视频编码帧。

  • 通过此接口可以实现通过主流或辅流视频通道推送外部视频编码后的数据。
    自从
    V4.6.29
    使用前提
    该方法仅在设置 NERtcEx#setExternalVideoSource(NERtcVideoStreamType streamType, boolean enable) 接口的 enable 参数为 true 后调用有效。
    调用时机
    请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
    业务场景
    适用于需要自行处理视频数据的采集与编码的场景。
    注解
  • 目前仅支持传输 H.264 格式的视频数据。
  • 该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后设置会重置为默认状态。
  • 建议先调用 NERtcEx#enableDualStreamMode() 方法关闭视频大小流功能,否则远端可能无法正常接收下行流。
  • 建议不要同时调用 NERtcEx#pushExternalVideoFrame(NERtcVideoStreamType streamType, NERtcVideoFrame frame) 方法。
  • 外部视频源数据的输入通道、本地视频采集通道与外部视频编码帧数据的推送通道必须同为主流或者辅流通道,否则 SDK 会报错。
    参数说明
    参数名称 类型 描述
    encodedVideoFrame video.NERtcVideoEncodedFrame 编码后的视频帧数据。
    streamType video.NERtcVideoStreamType 视频通道类型:
    • kNERtcVideoStreamTypeMain:主流。
    • kNERtcVideoStreamTypeSub:辅流。

    示例代码
    NERtcVideoEncodedFrame encodedFrame = new NERtcVideoEncodedFrame();
    encodedFrame.codecType = 编码器类型;
    encodedFrame.timestampUs = 时间戳;
    encodedFrame.nalLengths = 视频数据长度;
    encodedFrame.nalData = 视频数据;
    encodedFrame.frameType = 编码数据类型;
    encodedFrame.width = 视频宽;
    encodedFrame.height = 视频高;
    int ret = NERtcEx.getInstance().pushExternalVideoEncodedFrame(streamType, encodedFrame);
    if (ret != NERtcConstants.ErrorCode.OK) {
    // error message
    }
    相关接口
    可以调用 NERtcEx#setVideoEncoderQosObserver() 接口设置视频编码 QoS 信息监听器,通过回调的数据信息调整编码策略。
    返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如传入对象为空。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化或视频未开启。

◆ pushExternalVideoFrame() [1/2]

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

推送外部视频帧。
该方法主动将视频帧数据用 NERtcVideoFrame 类封装后传递给 SDK。

注解
参数
frame外部视频帧的数据信息。详细信息请参考 video.NERtcVideoFrame
返回
  • true:该帧推送成功;
  • false:该帧推送不成功。

◆ pushExternalVideoFrame() [2/2]

abstract boolean com.netease.lava.nertc.sdk.NERtcEx.pushExternalVideoFrame ( NERtcVideoStreamType  streamType,
NERtcVideoFrame  frame 
)
abstract

推送外部视频帧。
通过本接口可以实现创建外部视频输入源之后,将主流或辅流的外部视频数据帧用 NERtcVideoFrame 类封装后传递给 SDK。

自从
V4.6.20
使用前提
请在通过 NERtcEx#setExternalVideoSource(NERtcVideoStreamType streamType, boolean enable) 接口开启外部视频源数据输入后调用该方法,且必须使用同一种视频通道,即同为主流或辅流。
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
业务场景
实现由应用层而非 SDK 采集视频数据,适用于对输入的视频数据做水印、美颜、马赛克等前处理的场景。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 调用该方法设置开启外部视频源输入时,内部引擎为启用状态,在离开房间(leaveChannel)后,该接口设置失效,将恢复至默认。
参数说明
参数名称 类型 描述
streamType video.NERtcVideoStreamType 视频通道类型:
  • kNERtcVideoStreamTypeMain:主流。
  • kNERtcVideoStreamTypeSub:辅流。
frame video.NERtcVideoFrame 外部视频帧的数据信息。
示例代码
//给视频主流通道设置外部视频帧数据
NERtcVideoFrame videoFrame = new NERtcVideoFrame();
videoFrame.format = NERtcVideoFrame.Format.RGBA;
videoFrame.data = rgba;
videoFrame.width = mMetaData.width;
videoFrame.height = mMetaData.height;
videoFrame.rotation = mMetaData.rotation;
NERtcEx.getInstance().pushExternalVideoFrame(NERtcVideoStreamType.kNERtcVideoStreamTypeMain, videoFrame);
//给视频辅流通道设置外部视频帧数据
NERtcVideoFrame videoFrame = new NERtcVideoFrame();
videoFrame.format = NERtcVideoFrame.Format.RGBA;
videoFrame.data = rgba;
videoFrame.width = mMetaData.width;
videoFrame.height = mMetaData.height;
videoFrame.rotation = mMetaData.rotation;
NERtcEx.getInstance().pushExternalVideoFrame(NERtcVideoStreamType.kNERtcVideoStreamTypeSub, videoFrame);
返回
  • true:方法调用成功。
  • false:方法调用失败。

◆ removeBeautyFilter()

abstract void com.netease.lava.nertc.sdk.NERtcEx.removeBeautyFilter ( )
abstract


取消滤镜效果。

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

◆ removeBeautyMakeup()

abstract void com.netease.lava.nertc.sdk.NERtcEx.removeBeautyMakeup ( )
abstract

(此接口为 beta 版本)取消美妆效果。

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

◆ removeBeautySticker()

abstract void com.netease.lava.nertc.sdk.NERtcEx.removeBeautySticker ( )
abstract

(此接口为 beta 版本)取消贴纸效果。

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

◆ removeLiveStreamTask()

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

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

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

◆ reportCustomEvent()

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

用户自定义上报事件

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

◆ resumeAllEffects()

abstract int com.netease.lava.nertc.sdk.NERtcEx.resumeAllEffects ( )
abstract

恢复播放所有音效文件。
请在加入房间后调用该方法。

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

◆ resumeAudioMixing()

abstract int com.netease.lava.nertc.sdk.NERtcEx.resumeAudioMixing ( )
abstract

恢复伴音。
通过此接口可以实现恢复播放伴音文件。

自从
V3.5.0
使用前提
请先调用 NERtcEx#startAudioMixing() 开启伴音。
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
示例代码
NERtcEx.getInstance().resumeAudioMixing();
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化或当前未在播放伴音。

◆ resumeEffect()

abstract int com.netease.lava.nertc.sdk.NERtcEx.resumeEffect ( int  effectId)
abstract

恢复播放指定音效文件。
请在加入房间后调用该方法。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
返回
0
方法调用成功,其他失败。

◆ sendSEIMsg() [1/2]

abstract int com.netease.lava.nertc.sdk.NERtcEx.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.NERtcEx.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)

◆ setAudioEffectPreset()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setAudioEffectPreset ( int  preset)
abstract

预设变声效果。
通过此接口可以实现将人声原音调整为多种特殊效果,改变声音特性。

自从
V4.1.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后设置失效,将恢复至默认,即关闭变声音效。
  • 该方法和 NERtcEx#setLocalVoicePitch() 方法互斥,调用了其中任一方法后,另一方法的设置会被重置为默认值。
参数说明
参数名称 类型 描述
preset int 预设的变声音效。默认关闭变声音效。详细信息请参考 audio.NERtcVoiceChangerType
示例代码
NERtcEx.getInstance().setAudioEffectPreset()
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ setAudioFocusMode()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setAudioFocusMode ( int  focusMode)
abstract

设置音频焦点模式。

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

◆ setAudioFrameObserver()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setAudioFrameObserver ( NERtcAudioFrameObserver  observer)
abstract

注册语音观测器对象。
通过此接口可以设置音频采集/播放 PCM 回调,可用于声音处理等操作。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
参数说明
参数名称 类型 描述
observer audio.NERtcAudioFrameObserver 接口对象实例。如果传入参数为 NULL,取消注册,同时会清理 audio.NERtcAudioFrameRequestFormat 的相关设置。
示例代码
//注册音频流观测器对象
NERtcEx.getInstance().setAudioFrameObserver(voiceObserver);
//实现音频流观察器对象
private NERtcAudioFrameObserver voiceObserver new NERtcAudioFrameObserver() {
@Override
public void onRecordFrame(NERtcAudioFrame audioFrame) {
}
@Override
public void onRecordSubStreamAudioFrame(NERtcAudioFrame audioFrame) {
}
@Override
public void onPlaybackFrame(NERtcAudioFrame audioFrame) {
}
@Override
public void onPlaybackAudioFrameBeforeMixingWithUserID(long userID, NERtcAudioFrame audioFrame) {
}
@Override
public void onPlaybackAudioFrameBeforeMixingWithUserID(long userID, NERtcAudioFrame audioFrame, long channelId) {
}
@Override
public void onMixedAudioFrame(NERtcAudioFrame audioFrame) {
}
@Override
public void onPlaybackSubStreamAudioFrameBeforeMixingWithUserID(long userID, NERtcAudioFrame audioFrame, long channelId) {
}
};
相关回调
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎未初始化。

◆ setAudioMixingPitch()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setAudioMixingPitch ( int  pitch)
abstract

设置当前伴音文件的音调。

  • 通过此接口可以实现当本地人声和播放的音乐文件混音时,仅调节音乐文件的音调。
    自从
    V4.6.29
    使用前提
    请先调用 NERtcEx#startAudioMixing() 方法开启伴音。
    调用时机
    请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
    业务场景
    适用于 K 歌中为了匹配人声,调节背景音乐音高的场景。
    注解
    当前伴音任务结束后,此接口的设置会恢复至默认。
    参数说明
    参数名称 类型 描述
    pitch int 当前伴音文件的音调。默认值为 0,即不调整音调,取值范围为 -12 ~ 12,按半音音阶调整。每相邻两个值的音高距离相差半音;取值的绝对值越大,音调升高或降低得越多。

    示例代码
    int pitch = 5;
    NERtcEx.getInstance().setAudioMixingPitch(pitch);
    相关接口
    可以调用 NERtcEx#getAudioMixingPitch() 方法获取伴音文件的音调。
    返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如 pitch 超出范围。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如找不到对应的伴音任务或引擎尚未初始化。

◆ setAudioMixingPlaybackVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setAudioMixingPlaybackVolume ( int  volume)
abstract

调节伴奏播放音量。
该方法调节混音里伴奏的播放音量大小。请在房间内调用该方法。

参数
volume伴奏发送音量。取值范围为 0~200。默认 100,即原始文件音量。
返回
0
方法调用成功,其他失败。

◆ setAudioMixingPosition()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setAudioMixingPosition ( long  position)
abstract

设置音乐文件的播放位置。
该方法可以设置音频文件的播放位置,这样你可以根据实际情况播放文件,而非从头到尾播放整个文件。

参数
position音乐文件的播放位置,单位为毫秒。
返回
0
方法调用成功,其他失败。

◆ setAudioMixingSendVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setAudioMixingSendVolume ( int  volume)
abstract

调节伴奏发送音量。
该方法调节混音里伴奏的发送音量大小。请在房间内调用该方法。

参数
volume伴奏发送音量。取值范围为 0~200。默认 100,即原始文件音量。
返回
0
方法调用成功,其他失败。

◆ setAudioProcessObserver()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setAudioProcessObserver ( NERtcAudioProcessObserver  audioProcessObserver)
abstract

注册音频处理观测器对象。
调用本方法注册音频处理观测器后,如果检测到啸叫,会发送 onAudioHasHowling 回调。

参数
audioProcessObserver注册音频处理观测器对象。详细说明请参考 audio.NERtcAudioProcessObserver
返回
RTCResult

◆ setAudioSubscribeOnlyBy()

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

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

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

◆ setBeautyEffect()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setBeautyEffect ( NERtcBeautyEffectType  beautyType,
float  level 
)
abstract

设置美颜效果。 通过此接口可以实现设置磨皮、美白、大眼等多种全局美颜类型和对应的美颜强度。

自从
V4.6.10
使用前提
请先调用 NERtcEx#startBeauty() 方法开启美颜。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
您可以多次调用此接口以叠加多种全局美颜效果,也可以在此基础上通过其他方法叠加滤镜等自定义效果。
参数说明
参数名称 类型 描述
beautyType video.NERtcBeautyEffectType 美颜类型。
level float 对应美颜类型的强度。取值范围为 [0, 1],各种美颜效果的默认值不同。
示例代码
NERtcBeautyEffectType type; //美颜类型
float level; //美颜强度[0, 1]
NERtcEx.getInstance().setBeautyEffect(type, level);
相关接口
可以调用 NERtcEx#addBeautyFilter() 方法叠加滤镜等自定义美颜效果。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ setBeautyFilterLevel()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setBeautyFilterLevel ( float  level)
abstract

设置滤镜强度。
取值越大,滤镜强度越大,您可以根据业务需求自定义设置滤镜强度。

注解
滤镜强度设置实时生效,更换滤镜后滤镜强度不变,如需调整,可以再次调用此接口重新设置滤镜强度。
自从
V4.2.202
参数
level滤镜强度。取值范围为 [0 - 1],默认值为 0.5。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ setCameraExposurePosition()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setCameraExposurePosition ( float  x,
float  y 
)
abstract

设置摄像头的手动曝光位置。
通过此接口实现设置摄像头的手动曝光位置前,建议先通过 NERtcEx#isCameraExposurePositionSupported() 接口检测设备是否支持手动曝光功能。

自从
V3.5.0
使用前提
请在启用相机后调用此接口,例如调用 NERtc#startVideoPreview(NERtcVideoStreamType streamType)NERtc#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable) 之后。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数说明
参数名称 类型 描述
x float 触摸点相对于视图的横坐标,取值范围为 0 ~ 1。
y float 触摸点相对于视图的纵坐标,取值范围为 0 ~ 1。
示例代码
//设置camera焦点位置
NERtcEx.getInstance().setCameraExposurePosition(x,y);
相关回调
成功调用此方法后,本地会触发 NERtcCallbackEx#onCameraExposureChanged() 回调。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ setCameraFocusPosition()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setCameraFocusPosition ( float  x,
float  y 
)
abstract

设置摄像头的手动对焦位置。
通过此接口实现设置摄像头的手动曝光位置前,建议先通过 NERtcEx#isCameraFocusSupported() 接口检测设备是否支持手动对焦功能。

自从
V3.5.0
使用前提
请在启用相机后调用此接口,例如调用 NERtc#startVideoPreview(NERtcVideoStreamType streamType)NERtc#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable) 之后。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数说明
参数名称 类型 描述
x float 触摸点相对于视图的横坐标,取值范围为 0 ~ 1。
y float 触摸点相对于视图的纵坐标,取值范围为 0 ~ 1。
示例代码
//设置camera焦点位置
NERtcEx.getInstance().setCameraFocusPosition(x, y);
相关回调
成功调用此方法后,本地会触发 NERtcCallbackEx#onCameraFocusChanged(Rect rect) 回调。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ setCameraTorchOn()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setCameraTorchOn ( boolean  on)
abstract

设置是否打开闪光灯。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。

参数
on是否打开闪光灯。
  • true:打开闪光灯。
  • false:关闭闪光灯。
返回
0:成功 1: 失败 2:设备不支持闪光灯。

◆ setCameraZoomFactor()

abstract void com.netease.lava.nertc.sdk.NERtcEx.setCameraZoomFactor ( int  zoomValue)
abstract

设置摄像头缩放比例。
通过此接口实现设置摄像头缩放比例前,建议先通过 NERtcEx#getCameraMaxZoom() 接口查看摄像头支持的最大缩放比例,并根据实际需求合理设置需要的缩放比例。

自从
V3.5.0
使用前提
请在启用相机后调用此接口,例如调用 NERtc#startVideoPreview(NERtcVideoStreamType streamType)NERtc#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable) 之后。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数说明
参数名称 类型 描述
zoomValue int 摄像头缩放比例。
示例代码
NERtcEx.getInstance().setCameraZoomFactor(2);
返回
无返回值。

◆ setChannelProfile()

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

设置房间场景。
通过此接口可以实现设置房间场景为通话(默认)或直播场景。针对不同场景采取的优化策略不同,如通话场景侧重语音流畅度,直播场景侧重视频清晰度。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间前调用。
参数说明
参数名称 类型 描述
channelProfile int 设置房间场景:
  • COMMUNICATION(0):通话场景。
  • LIVE_BROADCASTING(1):直播场景。
示例代码
//设置房间场景为直播场景
NERtcEx.getInstance().setChannelProfile(NERtcConstants.RTCChannelProfile.LIVE_BROADCASTING);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。

◆ setClientRole()

abstract int com.netease.lava.nertc.sdk.NERtcEx.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):设置用户角色为观众。观众只能收流不能发流加入或退出房间状态对其他房间内用户不可见。
示例代码
//切换用户角色为主播
NERtcEx.getInstance().setClientRole(NERtcConstants.UserRole.CLIENT_ROLE_BROADCASTER);
//切换用户角色为观众
NERtcEx.getInstance().setClientRole(NERtcConstants.UserRole.CLIENT_ROLE_AUDIENCE);
相关回调
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30001(ENGINE_ERROR_FATAL):引擎未创建成功。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如传入的 int 值不是观众或主播。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,引擎尚未初始化。
    • 30101(ENGINE_ERROR_ROOM_NOT_JOINED): 尚未加入房间。

◆ setCloudProxy()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setCloudProxy ( int  proxyType)
abstract

开启并设置云代理服务。
在内网环境下,如果用户防火墙开启了网络限制,请参考《使用云代理》将指定 IP 地址和端口号加入防火墙白名单,然后调用此方法开启云代理,并将 proxyType 参数设置为 TRANSPORT_TYPE_UDP_PROXY(1),即指定使用 UDP 协议的云代理。

  • 成功连接云代理后,SDK 会触发 onConnectionStateChanged(CONNECTION_STATE_CONNECTING, CONNECTION_CHANGED_SETTING_PROXY_SERVER) 回调。
  • 如果需要关闭已设置的云代理,请调用 setCloudProxy(NONE_PROXY)
    注解
    请在加入房间前调用此方法。
    参数
    proxyType云代理类型。详细信息请参考 NERtcConstants.TransportType。该参数为必填参数,若未赋值,SDK 会报错。
    返回
    0
    方法调用成功,其他失败。

◆ setEarbackVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setEarbackVolume ( int  volume)
abstract

设置耳返音量。

参数
volume设置耳返音量,可设置为 0~100,默认为 100。
返回
0
方法调用成功,其他失败。

◆ setEffectPitch()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setEffectPitch ( int  effectId,
int  pitch 
)
abstract

设置指定音效文件的音调。

  • 通过此接口可以实现当本地人声和播放的音乐文件混音时,仅调节音乐文件的音调。
    自从
    V4.6.29
    使用前提
    请先调用 NERtcEx#playEffect() 方法播放音效。
    调用时机
    请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
    业务场景
    适用于 K 歌中为了匹配人声,调节背景音乐音高的场景。
    注解
    当前音效任务结束后,此接口的设置会恢复至默认。
    参数说明
    参数名称 类型 描述
    effectId int 指定音效文件的 ID。每个音效文件均对应唯一的 ID。
    pitch int 指定音效文件的音调。默认值为 0,即不调整音调,取值范围为 -12 ~ 12,按半音音阶调整。每相邻两个值的音高距离相差半音;取值的绝对值越大,音调升高或降低得越多。

    示例代码
    int effectId;
    int pitch = 5;
    NERtcEx.getInstance().setEffectPitch(mAudioEffectId1, pitch);
    相关接口
    可以调用 NERtcEx#getEffectPitch() 方法获取指定音效文件的音调。
    返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如 pitch 超出范围。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如找不到对应的音效任务或引擎尚未初始化。

◆ setEffectPlaybackVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setEffectPlaybackVolume ( int  effectId,
int  volume 
)
abstract

设置音效文件播放音量。
请在加入房间后调用该方法。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
volume音效播放音量。范围为 0~200,默认为 100。
返回
0
方法调用成功,其他失败。

◆ setEffectPosition()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setEffectPosition ( int  effectId,
long  position 
)
abstract

设置指定音效文件的播放位置。

  • 通过此接口可以实现根据实际情况播放音效文件,而非从头到尾播放整个文件。
    自从
    V4.6.29
    使用前提
    请先调用 NERtcEx#playEffect() 方法播放音效。
    调用时机
    请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
    参数说明
    参数名称 类型 描述
    effectId int 指定音效文件的 ID。每个音效文件均对应唯一的 ID。
    position long 指定音效文件的起始播放位置。单位为毫秒。

    示例代码
    //从1s处开始播放音效文件
    NERtcEx.getInstance().setEffectPosition(mAudioEffectId1, 1000);
    相关接口
  • NERtcEx#getEffectCurrentPosition():获取指定音效文件的当前播放位置。
  • NERtcCallbackEx#onAudioEffectTimestampUpdate():注册此回调实时获取指定音效文件的当前播放进度,默认为每隔 1s 返回一次。
    返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如 effectId 无效。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如找不到对应的音效任务或引擎尚未初始化。

◆ setEffectSendVolume()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setEffectSendVolume ( int  effectId,
int  volume 
)
abstract

设置音效文件发送音量。
请在加入房间后调用该方法。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
volume音效发送音量。范围为0~200,默认为100,表示原始音量。
返回
0
方法调用成功,其他失败。

◆ setExternalAudioRender()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setExternalAudioRender ( boolean  enable,
int  sampleRate,
int  channels 
)
abstract

设置外部音频渲染。
通过此接口可以实现启用外部音频渲染,并设置音频渲染的采样率、声道数等。

自从
V4.0.0
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间前调用。
业务场景
适用于需要自行渲染音频的场景。
注解
  • 该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后仍然有效;如果需要关闭该功能,需要在下次通话前调用此接口关闭外部音频数据渲染功能。
  • 成功调用此方法后,音频播放设备的选择和异常重启功能将失效, 且将用虚拟设备代替扬声器工作,因此扬声器的相关设置会无法生效,例如进行 loopback 检测时,需要由外部渲染播放。
  • 设置 enable 参数为 false 关闭该功能时,其他参数可传入任意合法值,均不会生效。
参数说明
参数名称 类型 描述
enable boolean 是否开启外部音频渲染:
  • true:开启外部音频渲染。
  • false(默认):关闭外部音频渲染。
sampleRate int 外部音频渲染的采样率,单位为赫兹(Hz),可设置为 16000,32000,44100 或 48000。
channels int 外部音频渲染的声道数,可设置为:
  • 1:单声道。
  • 2:双声道。
示例代码
//设置采样率为 16000 的双声道外部渲染
int ret = NERtcEx.getInstance().setExternalAudioRender(true, 16000, 2);
相关接口
可以继续调用 NERtcEx#pullExternalAudioFrame() 方法获取音频 PCM 数据,用以后续自行渲染并播放。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。

◆ setExternalAudioSource()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setExternalAudioSource ( boolean  enabled,
int  sample_rate,
int  channels 
)
abstract

开启或关闭外部音频源数据输入。
通过本接口可以实现创建自定义的外部音频源,并通过主流通道传输该外部音频源的数据。

自从
V3.9.0
使用前提
建议在通过 NERtc#enableLocalAudio() 接口关闭本地音频设备采集之后调用该方法。
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
业务场景
实现由应用层而非 SDK 采集音频数据,比如在合唱过程中使用自定义的音乐文件。
注解
  • 调用该方法关闭外部音频输入时可以传入任意合法值,此时设置不会生效,例如 setExternalAudioSource(false, 0, 0)。
  • 该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后仍然有效;如果需要关闭该功能,需要在下次通话前调用此接口关闭外部音频数据输入功能。
  • 成功调用此方法后,将用虚拟设备代替麦克风工作,因此麦克风的相关设置会无法生效,例如进行 loopback 检测时,会听到外部输入的音频数据。
参数说明
参数名称 类型 描述
enabled boolean 是否开启外部音频输入:
  • true:开启外部音频输入。
  • false:关闭外部音频输入。
sampleRate int 外部音频源的数据采样率,单位为 Hz。建议设置为 8000,16000,32000,44100 或 48000。
channels int 外部音频源的数据声道数:
  • 1:单声道。
  • 2:双声道。
示例代码
//第一步 先关闭设备采集(若已经开启了本地设备采集)
NERtcEx.getInstance().enableLocalAudio(false);
//第二步 打开外部音频输入
NERtcEx.getInstance().setExternalAudioSource(true, 44100, 2);
//第三步 打开音频通道
NERtcEx.getInstance().enableLocalAudio(true);
//第四步 推入外部音频输入数据,这里只推一帧作为参考
NERtcAudioExternalFrame audioFrame = NERtcAudioExternalFrame();
audioFrame.audioData = sampleData; //(byte[])
audioFrame.numberOfChannels = mChannels; //通道数
audioFrame.sampleRate = mSampleRate; //采样率
audioFrame.samplesPerChannel = mSampleRate * CUSTOM_AUDIO_TIME_DUR / 1000; //单个通道中采集点个数
audioFrame.syncTimestamp = lastSyncTimestamp; //同步音频主辅流的时间戳,一般只在同时开启外部音频主流及辅流输入时用到
NERtcEx.getInstance().pushExternalAudioFrame(audioFrame);
相关接口
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如声道数不是 1 或者 2,或者采样率设置有问题。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎未初始化成功。

◆ setExternalSubStreamAudioSource()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setExternalSubStreamAudioSource ( boolean  enabled,
int  sampleRate,
int  channels 
)
abstract

开启或关闭外部音频辅流数据源输入。
通过本接口可以实现创建自定义的外部音频源,并通过辅流通道传输该外部音频源的数据。

自从
V4.6.10
使用前提
建议在通过 {NERtc::enableLocalAudio()} 接口关闭本地音频设备采集之后调用该方法。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
业务场景
实现由应用层而非 SDK 采集音频数据,比如在合唱过程中使用自定义的音乐文件。
注解
  • 调用该方法关闭外部音频输入时可以传入任意合法值,此时设置不会生效,例如 setExternalAudioSource(false, 0, 0)。
  • 该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后仍然有效;如果需要关闭该功能,需要在下次通话前调用此接口关闭外部音频数据输入功能。
  • 成功调用此方法后,将用虚拟设备代替麦克风工作,因此麦克风的相关设置会无法生效,例如进行 loopback 检测时,会听到外部输入的音频数据。
参数说明
参数名称 类型 描述
enabled boolean 是否开启外部音频输入:
  • true:开启外部音频输入。
  • false:关闭外部音频输入。
sampleRate int 外部音频源的数据采样率,单位为 Hz。建议设置为 8000,16000,32000,44100 或 48000。
channels int 外部音频源的数据声道数:
  • 1:单声道。
  • 2:双声道。
示例代码
//打开外部音频辅流输入
NERtcEx.getInstance().setExternalSubStreamAudioSource(true, 48000, 2);
相关接口
成功开启外部音频源输入后可以调用 NERtcEx#pushExternalSubStreamAudioFrame() 方法继续发送音频 PCM 数据。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如声道数不是 1 或者 2,或者采样率设置有问题。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎未初始化成功。

◆ setExternalVideoSource() [1/2]

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

开启或关闭外部视频源数据输入。
通过本接口可以实现创建自定义的外部视频源,并通过主流通道传输该外部视频源的数据。

自从
V3.5.0
使用前提
请在通过 NERtc#enableLocalVideo() 接口关闭本地视频设备采集之后调用该方法。
调用时机
请在通过 NERtc#startVideoPreview(NERtcVideoStreamType streamType) 接口开启本地视频预览或通过 NERtc#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable) 接口开启视频流传输通道之前调用该方法,且必须使用同一种视频通道,即同为主流。
业务场景
实现由应用层而非 SDK 采集视频数据,适用于对输入的视频数据做水印、美颜、马赛克等前处理的场景。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后仍然有效;如果需要关闭该功能,需要在下次通话前调用此接口关闭外部视频数据输入功能。
参数说明
参数名称 类型 描述
enable boolean 是否开启外部视频输入:
  • true:开启外部视频输入。
  • false:关闭外部视频输入。
示例代码
//第一步 先关闭视频设备采集
NERtcEx.getInstance().enableLocalVideo(false);
//第二步 设置为外部视频
NERtcEx.getInstance().setExternalVideoSource(true);
//第三步 打开视频通道
NERtcEx.getInstance().enableLocalVideo(true);
//第四步 推送视频帧
NERtcVideoFrame videoFrame = new NERtcVideoFrame();
videoFrame.format = NERtcVideoFrame.Format.I420; //视频数据空间格式
videoFrame.data = mBuffer.array(); //视频数据
videoFrame.width = mWidth;
videoFrame.height = mHeight;
videoFrame.rotation = mRotation;
NERtcEx.getInstance().pushExternalVideoFrame(videoFrame);
相关接口
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30004(ENGINE_ERROR_NOT_SUPPORTED):不支持的操作,比如已开启了同视频通道的本地视频采集。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎未初始化成功。

◆ setExternalVideoSource() [2/2]

abstract int com.netease.lava.nertc.sdk.NERtcEx.setExternalVideoSource ( NERtcVideoStreamType  streamType,
boolean  enable 
)
abstract

开启或关闭外部视频源数据输入。
通过本接口可以实现创建自定义的外部视频源,您可以选择通过主流或辅流通道传输该外部视频源的数据。

自从
V4.6.20
使用前提
请在通过 NERtc#startVideoPreview(NERtcVideoStreamType streamType) 接口开启本地视频预览或通过 NERtc#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable) 接口开启本地视频采集之前调用该方法,且必须使用同一种视频通道,即同为主流或辅流。
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
业务场景
实现由应用层而非 SDK 采集视频数据,适用于对输入的视频数据做水印、美颜、马赛克等前处理的场景。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 该方法设置开启主流外部视频源输入时,内部引擎为启用状态,在切换房间(switchChannel)、主动离开房间(leaveChannel)、触发断网重连失败回调(onDisconnect)或触发重新加入房间回调(onReJoinChannel)后仍然有效。如果需要关闭该功能,请在下次通话前调用接口关闭该功能。
  • 该方法设置开启辅流外部视频源输入时,在切换房间或触发重新加入房间回调后仍然有效;但在主动离开房间或触发断网重连失败回调后,该接口设置失效,将恢复至默认。
  • 请务必保证视频主流和辅流输入通道各最多只能有一种视频输入源,其中屏幕共享只能通过辅流通道开启,因此:
    • 若您开启了辅流形式的屏幕共享,请使用主流通道输入外部视频源数据,即设置 streamType 参数为 kNERtcVideoStreamTypeMain。
    • 若您已调用 NERtc#enableLocalVideo(NERtcVideoStreamType streamType, boolean enable) 方法开启本地主流视频采集,请勿再调用此接口创建主流形式的外部视频源输入,辅流通道同理。
参数说明
参数名称 类型 描述
streamType video.NERtcVideoStreamType 视频通道类型:
  • kNERtcVideoStreamTypeMain:主流。
  • kNERtcVideoStreamTypeSub:辅流。
enable boolean 是否使用外部视频源:
  • true:开启。
  • false:关闭。
示例代码
//通过主流视频通道输入外部视频源数据
NERtcEx.getInstance().setExternalVideoSource(NERtcVideoStreamType.kNERtcVideoStreamTypeMain, true);
//通过辅流视频通道输入外部视频源数据
NERtcEx.getInstance().setExternalVideoSource(NERtcVideoStreamType.kNERtcVideoStreamTypeSub, true);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30004(ENGINE_ERROR_NOT_SUPPORTED):不支持的操作,比如已开启了同视频通道的本地视频采集。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎未初始化成功。

◆ setLocalCanvasWatermarkConfigs()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setLocalCanvasWatermarkConfigs ( NERtcVideoStreamType  type,
NERtcCanvasWatermarkConfig  config 
)
abstract

添加本地视频画布水印。

注解
  • setLocalCanvasWatermarkConfigs 方法作用于本地视频画布,不影响视频流。画布被移除时,水印也会自动移除。
  • 设置水印之前,需要先通过画布相关方法设置画布。
参数
type视频流类型。支持设置为主流或辅流。详细信息请参考 video.NERtcVideoStreamType
config画布水印设置。支持设置文字水印、图片水印和时间戳水印,设置为 null 表示清除水印。
详细信息请参考 watermark.NERtcCanvasWatermarkConfig
参见
NERtcEx::setLocalVideoWatermarkConfigs(NERtcVideoStreamType, NERtcVideoWatermarkConfig)
返回
0
方法调用成功,其他调用失败。

◆ setLocalMediaPriority()

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

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

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

◆ setLocalPublishFallbackOption()

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

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

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

◆ setLocalVideoWatermarkConfigs()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setLocalVideoWatermarkConfigs ( NERtcVideoStreamType  type,
NERtcVideoWatermarkConfig  config 
)
abstract

设置视频水印。水印在本地预览及发送过程中均生效。

注解
设置水印后,建议关注水印状态回调 NERtcCallbackEx#onLocalVideoWatermarkState
自从
V4.6.10
参数
type水印的视频流类型。支持设置为主流或辅流。详细信息请参考 video.NERtcVideoStreamType
config水印设置。设置为 null 表示取消之前的水印。详细信息请参考 watermark.NERtcVideoWatermarkConfig
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ setLocalVoiceEqualization()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setLocalVoiceEqualization ( int  bandFrequency,
int  bandGain 
)
abstract

设置本地语音音效均衡,即自定义设置本地人声均衡波段的中心频率。

注解
该方法在加入房间前后都能调用,通话结束后重置为默认关闭状态。
参数
bandFrequency频谱子带索引,取值范围是 [0-9],分别代表 10 个频带,对应的中心频率是 [31,62,125,250,500,1k,2k,4k,8k,16k] Hz。
bandGain每个 band 的增益,单位是 dB,每一个值的范围是 [-15,15],默认值为 0。
返回
0
方法调用成功,其他失败

◆ setLocalVoicePitch()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setLocalVoicePitch ( double  pitch)
abstract

设置本地语音音调。
该方法改变本地说话人声音的音调。

注解
  • 通话结束后该设置会重置,默认为 1.0。
  • 此方法与 setAudioEffectPreset 互斥,调用此方法后,已设置的变声效果会被取消。
参数
pitch语音频率。可以在 [0.5, 2.0] 范围内设置。取值越小,则音调越低。默认值为 1.0,表示不需要修改音调。
返回
0
方法调用成功,其他失败

◆ setLocalVoiceReverbParam()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setLocalVoiceReverbParam ( NERtcReverbParam  param)
abstract

设置本地语音混响效果。

注解
该方法在加入房间前后都能调用,通话结束后重置为默认的关闭状态。
自从
V4.6.10
参数
param详细信息请参考 audio.NERtcReverbParam
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ setMixedAudioFrameParameters()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setMixedAudioFrameParameters ( NERtcAudioFrameRequestFormat  format)
abstract

设置采集和播放声音混音后的音频数据格式。
通过本接口可以实现设置 NERtcAudioFrameObserver#onMixedAudioFrame() 回调的混音音频格式。

自从
V3.9.0
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
业务场景
适用于需要获取本地用户和远端所有用户的声音的场景,比如通话录音的场景。
注解
  • 该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后设置会重置为默认状态。
  • 目前仅支持设置对应回调的音频采样率;未调用该接口设置返回的音频数据格式时,回调中的采样率取默认值。
参数说明
参数名称 类型 描述
format audio.NERtcAudioFrameRequestFormat 指定 NERtcAudioFrameObserver#onMixedAudioFrame(NERtcAudioFrame) 中返回数据的采样率和数据的通道数。若您希望使用音频的原始格式,format 参数传 NULL 即可,默认为 NULL。
示例代码
NERtcAudioFrameRequestFormat formatMix = new NERtcAudioFrameRequestFormat();
formatMix.setSampleRate(16000);
NERtcEx.getInstance().setMixedAudioFrameParameters(formatMix);
NERtcEx.getInstance().setAudioFrameObserver(new NERtcAudioFrameObserver(){
@Override
public void onMixedAudioFrame(NERtcAudioFrame audioFrame) {
byte[] remaining = new byte[audioFrame.getData().remaining()];
audioFrame.getData().get(remaining);
}
});
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎未初始化成功。

◆ setNERtcCallback()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setNERtcCallback ( NERtcCallback  callback)
abstract

设置事件通知回调。
通过本接口可以实现根据自身业务场景,监听相应的主回调。

自从
V4.6.40
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 调用此方法后会覆盖 NERtc#init() 时传入的回调或上一次调用此方法设置的回调。
  • 调用 NERtc#release() 方法销毁引擎后,通过此接口设置的回调会失效,在下一次 NERtc#init() 后需要重新设置。
参数说明
参数名称 类型 描述
callback NERtcCallbackEx SDK 主回调。设置为 null 表示清空回调。
示例代码
NERtcCallbackEx rtcCallbackEx = xxx ;
NERtcEx.getInstance().setNERtcCallback(rtcCallbackEx) ;
返回
0(OK): 方法调用成功。 其他: 方法调用失败。
  • 30005(ENGINE_ERROR_INVALID_STATE):引擎尚未初始化。

◆ setPlaybackAudioFrameParameters()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setPlaybackAudioFrameParameters ( NERtcAudioFrameRequestFormat  format)
abstract

设置音频播放回调的声音格式。
通过此接口可以实现设置 SDK 播放音频 PCM 回调 NERtcAudioFrameObserver#onPlaybackFrame() 的采样率及声道数,同时还可以设置读写模式。在写模式下,您可以通过 NERtcAudioFrameObserver#onPlaybackFrame() 回调修改 PCM 数据,后续将播放修改后的音频数据。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
业务场景
适用于需要自行对待播放的声音进行二次处理的场景。
参数说明
参数名称 类型 描述
format audio.NERtcAudioFrameRequestFormat 指定 NERtcAudioFrameObserver#onPlaybackFrame() 中返回数据的采样率和数据的通道数。允许传入 NULL,默认为 NULL,表示使用音频的原始格式。
示例代码
NERtcAudioFrameRequestFormat formatPlayback = new NERtcAudioFrameRequestFormat();
formatPlayback.setChannels(1);
formatPlayback.setSampleRate(16000);
formatPlayback.setOpMode(NERtcAudioFrameOpMode.kNERtcAudioFrameOpModeReadOnly);
NERtcEx.getInstance().setPlaybackAudioFrameParameters(formatPlayback);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ setPlayoutDeviceMute()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setPlayoutDeviceMute ( boolean  enable)
abstract

设置是否静音音频播放设备。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
注解
此接口仅静音播放的音频数据,不影响播放设备的运行。
参数说明
参数名称 类型 描述
enable boolean 是否静音音频播放设备:
  • true:静音音频播放设备。
  • false:取消静音音频播放设备。
示例代码
//设置播放设备静音
NERtcEx.getInstance().setPlayoutDeviceMute(true);
//设置播放设备取消静音
NERtcEx.getInstance().setPlayoutDeviceMute(false);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ setPreDecodeObserver()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setPreDecodeObserver ( NERtcPreDecodeObserver  observer)
abstract

注册解码前媒体数据观测器。

  • 通过此接口可以设置 predecoder.NERtcPredecodeObserver#onFrame() 回调监听,返回相关解码前媒体数据。
    自从
    V4.6.29
    使用前提
    若您需要接收未解码的视频数据,建议先调用 NERtc#setParameters() 接口关闭 SDK 的视频解码功能。
    调用时机
    请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
    业务场景
    适用于需要自行处理音、视频数据的解码与渲染的场景。
    注解
    目前仅支持传输 OPUS 格式的音频数据和 H.264 格式的视频数据。
    参数说明
    参数名称 类型 描述
    observer predecoder.NERtcPreDecodeObserver 接口对象实例。可以传 NULL 表示取消注册。

    示例代码
    // 实现自定义观察类
    private final NERtcPreDecodeObserver neRtcPreDecodeObserver = preDecodeFrame -> {
    // 创建文件路径
    String fileName = ...;
    if (fileName == null) {
    // error message
    return;
    }
    // 处理音频数据
    if (preDecodeFrame.mediaType == NERtcConstants.NERtcPreDecodeMediaType.PRE_DECODE_MEDIA_TYPE_AUDIO) {
    if (preDecodeFrame.isMainStream) {
    audioSyncTimestamp = preDecodeFrame.timestampMs;
    }
    ...
    return;
    }
    // 处理视频数据
    if (preDecodeFrame.mediaType == NERtcConstants.NERtcPreDecodeMediaType.PRE_DECODE_MEDIA_TYPE_VIDEO) {
    if (preDecodeFrame.isMainStream) {
    videoSyncTimestamp = preDecodeFrame.timestampMs;
    }
    }
    };
    // 调用接口
    NERtcEx.getInstance().setPreDecodeObserver(neRtcPreDecodeObserver);
    相关回调
    predecoder.NERtcPreDecodeObserver#onFrame():返回相关解码前媒体数据,包括用户的 UID、媒体数据类型、数据长度等。
    返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。

◆ setRecordDeviceMute()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setRecordDeviceMute ( boolean  enable)
abstract

设置是否静音音频采集设备。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
业务场景
适用于麦克风采集和伴音同时开启时,只发送伴音音频的场景。
参数说明
参数名称 类型 描述
enable boolean 是否静音音频采集设备:
  • true:静音音频采集设备。
  • false:取消静音音频采集设备。
示例代码
//静音设备
NERtcEx.getInstance().setRecordDeviceMute(true);
//解除设备静音
NERtcEx.getInstance().setRecordDeviceMute(false);
相关接口
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ setRecordingAudioFrameParameters()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setRecordingAudioFrameParameters ( NERtcAudioFrameRequestFormat  format)
abstract

设置采集的音频格式。
通过本接口可以实现设置 NERtcAudioFrameObserver#onRecordFrame(com.netease.lava.nertc.sdk.audio.NERtcAudioFrame) 回调的录制声音格式。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
业务场景
适用于需要监听音频 PCM 采集数据回调并指定回调的数据格式的场景。
注解
若您希望使用音频的原始格式,format 参数传 NULL 即可。
参数说明
参数名称 类型 描述
format audio.NERtcAudioFrameRequestFormat 指定 NERtcAudioFrameObserver#onRecordFrame(com.netease.lava.nertc.sdk.audio.NERtcAudioFrame) 中返回数据的采样率和数据的通道数。
示例代码
NERtcAudioFrameRequestFormat formatMix = new NERtcAudioFrameRequestFormat();
//单声道、双声道
formatMix.setChannels(channelNumber);
//采样率
formatMix.setSampleRate(sampleRate);
//读写权限
formatMix.setOpMode(NERtcAudioFrameOpMode.kNERtcAudioFrameOpModeReadOnly/NERtcAudioFrameOpMode.kNERtcAudioFrameOpModeReadWrite);
NERtcEx.getInstance().setRecordingAudioFrameParameters(formatMix);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):引擎尚未初始化。

◆ setRemoteCanvasWatermarkConfigs()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setRemoteCanvasWatermarkConfigs ( long  uid,
NERtcVideoStreamType  type,
NERtcCanvasWatermarkConfig  config 
)
abstract

添加远端视频画布水印。

自从
V4.2.0
使用前提
请先调用 NERtc#setupRemoteVideoCanvas()NERtcEx#setupRemoteSubStreamVideoCanvas() 方法设置远端用户的视频画布。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间之后调用。
注解
该方法仅作用于远端视频画布,不影响视频流。画布被移除时,水印也会自动移除。
参数说明
参数名称 类型 描述
uid long 远端用户 ID。
type video.NERtcVideoStreamType 视频通道类型:
  • kNERtcVideoStreamTypeMain:主流。
  • kNERtcVideoStreamTypeSub:辅流。
config watermark.NERtcCanvasWatermarkConfig 画布水印设置。支持设置文字水印、图片水印和时间戳水印,设置为 null 表示清除水印。
示例代码
long uid; //User ID
//根据需要选择是对主流还是辅流添加水印
NERtcVideoStreamType type = NERtcVideoStreamType.kNERtcVideoStreamTypeMain;
NERtcTextWatermarkConfig textWatermark = new NERtcTextWatermarkConfig();
textWatermark.content = "Hello World";
NERtcCanvasWatermarkConfig canvasWatermarkConfig = new NERtcCanvasWatermarkConfig();
//根据需求选择是文字水印,时间戳水印还是图片水印,此处添加文字水印
canvasWatermarkConfig.textWatermarks = new NERtcTextWatermarkConfig[] {textWatermark};
NERtcEx.getInstance().setRemoteCanvasWatermarkConfigs(uid, type, canvasWatermarkConfig);
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):无效参数。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ setRemoteHighPriorityAudioStream()

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

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

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

◆ setRemoteSubscribeFallbackOption()

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

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

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

◆ setSpeakerphoneOn()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setSpeakerphoneOn ( boolean  enable)
abstract

设置是否由扬声器播放声音。
通过本接口可以实现设置是否将语音路由到扬声器,即设备外放。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
注解
若设备连接了耳机或蓝牙,则无法开启外放。
参数说明
参数名称 类型 描述
enable boolean 是否将音频路由到扬声器:
  • true:启用扬声器播放。
  • false:关闭扬声器播放。
示例代码
//打开外放
NERtcEx.getInstance().setSpeakerphoneOn(true);
//关闭外放
NERtcEx.getInstance().setSpeakerphoneOn(false);
相关回调
NERtcCallbackEx#onAudioDeviceChanged(int selected):音频路由改变回调,可以通过此回调判断当前音频播放设备。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎未初始化成功。

◆ setStatsObserver()

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

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

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

◆ setStreamAlignmentProperty()

abstract void com.netease.lava.nertc.sdk.NERtcEx.setStreamAlignmentProperty ( boolean  enable)
abstract

开启精准对齐。 通过此接口可以实现精准对齐功能,对齐本地系统与服务端的时间。

自从
V4.6.10
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间前调用。
业务场景
适用于 KTV 实时合唱的场景。
参数说明
参数名称 类型 描述
enable boolean 是否开启精准对齐功能:
  • true:开启精准对齐功能。
  • false:关闭精准对齐功能。
示例代码
NERtcEx.getInstance().setStreamAlignmentProperty(true);
相关接口
可以调用 NERtcEx#getNtpTimeOffset() 方法获取本地系统时间与服务端时间的差值。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ setupLocalSubStreamVideoCanvas()

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

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

自从
V3.9.0
调用时机
请在引擎初始化之后调用此接口,且该方法建议在加入房间前调用。
参数说明
参数名称 类型 描述
render IVideoRender 视频画布。详细信息请参考 video.NERtcVideoView
示例代码
NERtcEx.getInstance().setupLocalSubStreamVideoCanvas(mVideoView);
相关接口
可以调用 NERtcVideoView#setScalingType(int) 方法在通话过程中更新远端用户视图的渲染模式。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ setupRemoteSubStreamVideoCanvas()

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

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

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

◆ setVideoCallback()

abstract void com.netease.lava.nertc.sdk.NERtcEx.setVideoCallback ( NERtcVideoCallback  videoCallback,
boolean  textureWithI420 
)
abstract

设置视频采集回调的数据格式。
通过本接口可以实现监听视频采集数据的回调 NERtcVideoCallback#onVideoCallback(),以对视频数据进行额外处理,例如美颜等操作。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
参数说明
参数名称 类型 描述
videoCallback video.NERtcVideoCallback 视频采集数据回调。
textureWithI420 boolean 是否需要同时返回 YUV I420 和 Texture 格式的数据:
  • true:同时返回 YUV I420 和 Texture 格式的数据。一般仅在需要支持第三方滤镜率时需返回 YUV 数据。
  • false:仅返回 Texture 数据。
示例代码
NERtcEx.getInstance().setVideoCallback(videoFrame -> {
if (videoFrame.format == NERtcVideoFrame.Format.TEXTURE_OES) {
//纹理方式
int textureId = drawDrawDualIuput(videoFrame.data, videoFrame.textureId, videoFrame.width, videoFrame.height);
videoFrame.format = videoFrame.textureId == textureId ? videoFrame.format : NERtcVideoFrame.Format.TEXTURE_RGB;
videoFrame.textureId = textureId;
return true;
} else if (videoFrame.format == NERtcVideoFrame.Format.I420 || videoFrame.format == NERtcVideoFrame.Format.NV21) {
//NV21方式
return true;
}
return false;
}, false);
返回
无返回值。

◆ setVideoCorrectionConfig()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setVideoCorrectionConfig ( NERtcVideoCorrectionConfiguration  config)
abstract

设置视频图像矫正参数。

注解
  • 矫正参数结构体的前 4 个参数,代表了待矫正区域相对于屏幕上视图的坐标,每个坐标点的 x 和 y 的取值范围均为 0 ~ 1 的浮点数。
  • 矫正参数结构体的后 3 个参数只有在使用了外部视频渲染功能时才需要传入。
  • config 可以传入 nil,清空之前设置过的矫正参数,将画面恢复至矫正之前的效果。
自从
V4.6.0
参数
config视频图像矫正相关参数。详细说明请参考 NERtcVideoCorrectionConfiguration
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ setVideoEncoderQosObserver()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setVideoEncoderQosObserver ( NERtcVideoEncoderQosObserver  encoderQosObserver)
abstract

注册视频编码 QoS 信息监听器。

  • 通过此接口可以设置 NERtcVideoEncoderQosObserver#onRequestSendKeyFrame()NERtcVideoEncoderQosObserver#onVideoCodecUpdated()NERtcVideoEncoderQosObserver#onBitrateUpdated() 回调监听,并通过返回的相关视频编码数据调整视频编码策略。
    自从
    V4.6.29
    调用时机
    请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
    业务场景
    适用于需要自行处理视频数据的采集与编码的场景。
    注解
    该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后仍然有效;如果需要关闭该功能,需要在下次通话前调用此接口关闭视频编码 QoS 信息监听。
    参数说明
    参数名称 类型 描述
    encoderQosObserver video.NERtcVideoEncoderQosObserver 接口对象实例。可以传 NULL 表示取消注册。

    示例代码
    // 取消回调
    NERtcEx.getInstance().setVideoEncoderQosObserver(null);
    // 设置回调
    private NERtcVideoEncoderQosObserver encoderQosObserver = new NERtcVideoEncoderQosObserver() {
    @Override
    public void onRequestSendKeyFrame(NERtcVideoStreamType videoStreamType) {
    // onRequestSendKeyFrame
    }
    @Override
    public void onBitrateUpdated(int bitrateBps, NERtcVideoStreamType videoStreamType) {
    // onBitrateUpdated
    }
    @Override
    public void onVideoCodecUpdated(NERtcVideoCodecType videoCodecType, NERtcVideoStreamType videoStreamType) {
    // onVideoCodecUpdated
    }
    };
    NERtcEx.getInstance().setVideoEncoderQosObserver(encoderQosObserver);
    相关回调
    NERtcVideoEncoderQosObserver#onRequestSendKeyFrame():I 帧请求回调。 NERtcVideoEncoderQosObserver#onVideoCodecUpdated():码率信息回调。 NERtcVideoEncoderQosObserver#onBitrateUpdated():视频编码器类型信息回调。
    返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。

◆ setVoiceBeautifierPreset()

abstract int com.netease.lava.nertc.sdk.NERtcEx.setVoiceBeautifierPreset ( int  preset)
abstract

预设美声效果。 通过此接口可以实现为本地发流用户设置 SDK 预设的人声美声效果。

自从
V4.0.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
业务场景
适用于多人语聊或 K 歌房中需要美化主播或连麦者声音的场景。
注解
该方法设置内部引擎为启用状态,在 NERtc#leaveChannel() 后设置失效,将恢复至默认。
参数说明
参数名称 类型 描述
preset int 预设的美声效果模式。默认值为 VOICE_BEAUTIFIER_OFF,即关闭美声效果。详细信息请参考 audio.NERtcVoiceBeautifierType
示例代码
NERtcEx.getInstance().setVoiceBeautifierPreset(NERtcVoiceBeautifierType.VOICE_BEAUTIFIER_MELLOW);
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ startAudioDump()

abstract int com.netease.lava.nertc.sdk.NERtcEx.startAudioDump ( )
abstract

开始记录音频 dump。
音频 dump 可用于分析音频问题。

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

◆ startAudioDumpWithType()

abstract int com.netease.lava.nertc.sdk.NERtcEx.startAudioDumpWithType ( int  dumpType)
abstract

开始记录音频 dump。
音频 dump 可用于分析音频问题。

参数
dumpTypedump 类型 详细信息请参考 NERtcConstants.AUDIO_DUMP_MODE
返回
0
方法调用成功,其他失败。

◆ startAudioMixing()

abstract int com.netease.lava.nertc.sdk.NERtcEx.startAudioMixing ( NERtcCreateAudioMixingOption  option)
abstract

开启伴音。
通过本接口可以实现指定本地或在线音频文件和录音设备采集的音频流进行混音。

自从
V3.5.0
使用前提
发送伴音前必须前调用 NERtc#enableLocalAudio() 方法开启本地音频采集(V4.4.0 版本除外)。
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
注解
  • 支持的音乐文件类型包括 MP3、M4A、AAC、3GP、WMA 和 WAV 格式,支持本地文件或在线 URL。
  • 自 V4.3.0 版本起,若您在通话中途调用此接口播放音乐文件时,手动设置了伴音播放音量或发送音量,则当前通话中再次调用时默认沿用此设置。
参数说明
参数名称 类型 描述
option audio.NERtcCreateAudioMixingOption 创建伴音任务的配置选项,包括伴音任务类型、伴音文件的绝对路径或 URL 等。
示例代码
NERtcCreateAudioMixingOption option = new NERtcCreateAudioMixingOption();
option.path = "/sdcard/test.mp3"; //伴音文件路径
option.playbackEnabled = true; //是否本地播放
option.playbackVolume = 100; //本地播放音量
option.sendEnabled = true; //是否编码发送
option.sendVolume = 100; //发送音量
option.loopCount = 1; //循环次数
option.startTimeStamp = 0; //音乐文件开始播放的时间,UTC 时间戳
option.sendWithAudioType = NERtcAudioStreamType.kNERtcAudioStreamTypeMain; //伴音跟随音频主流还是辅流,默认跟随主流
int ret = NERtcEx.getInstance().startAudioMixing(option);; //开始伴音任务
if(ret == NERtcConstants.ErrorCode.OK) {
//创建伴音任务成功
}else {
//创建伴音任务失败
}
相关回调
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。
    • 30403(ENGINE_ERROR_MEDIA_BANNED):该用户被服务器禁言。

◆ startAudioRecording()

abstract int com.netease.lava.nertc.sdk.NERtcEx.startAudioRecording ( String  filePath,
int  sampleRate,
int  quality 
)
abstract

开启客户端本地录音。 通过此接口可以实现录制客户端房间内所有用户混音后的音频流,并将其保存在一个本地录音文件中。

自从
V4.2.0
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
注解
客户端只能同时运行一个录音任务;若您在录音过程中重复调用 NERtcEx#startAudioRecording() 方法,会结束当前录制任务,并重新开始新的录音任务。 本端用户离开房间时,自动停止录音;也可以在通话中随时调用 NERtcEx#stopAudioRecording() 方法以实现手动停止录音。 请保证录音文件的保存路径存在并且可写,目前支持 WAV(音质保真度高,文件大)、AAC(音质保真度低,文件小)格式的文件。
参数说明
参数名称 类型 描述
filePath String 录音文件在本地保存的绝对路径,需要精确到文件名及格式,例如:sdcard/xxx/audio.aac。
sampleRate int 录音采样率。单位为赫兹(Hz),可以设置为 16000、32000(默认)、44100 或 48000。
quality int 录音音质。此参数仅在 AAC 格式下有效。详细信息请参考 NERtcConstants.AudioRecordingQuality
示例代码
String filePath; //录音文件在本地保存的绝对路径
int sampleRate; //录音采样率(Hz)
int quality; //录音音质,只在 AAC 格式下有效。
NERtcEx.getInstance().startAudioRecording(filePath, sampleRate, quality);
相关回调
调用此接口成功后会触发 NERtcCallbackEx#onAudioRecording() 回调,通知音频录制任务状态已更新。音频录制状态码请参考 NERtcConstants.AudioRecordingCode
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM): 参数错误,比如设置的采样率无效。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ startAudioRecordingWithConfig()

abstract int com.netease.lava.nertc.sdk.NERtcEx.startAudioRecordingWithConfig ( NERtcAudioRecordingConfiguration  audioRecordConfig)
abstract

开始客户端录音。 调用该方法后,客户端会录制房间内所有用户混音后的音频流,并将其保存在本地一个录音文件中。录制开始或结束时,自动触发 onAudioRecording() 回调。 指定的录音音质不同,录音文件会保存为不同格式:

  • WAV:音质保真度高,文件大。
  • AAC:音质保真度低,文件小。
    注解
  • 请在加入房间后调用此方法。
  • 客户端只能同时运行一个录音任务,正在录音时,如果重复调用 startAudioRecordingWithConfig,会结束当前录制任务,并重新开始新的录音任务。
  • 当前用户离开房间时,自动停止录音。您也可以在通话中随时调用 stopAudioRecording 手动停止录音。
    自从
    V4.6.0
    参数
    recordFilePath录音文件在本地保存的绝对路径,需要精确到文件名及格式。例如:sdcard/xxx/audio.aac。
    • 请确保指定的路径存在并且可写。
    • 目前仅支持 WAV 或 AAC 文件格式。
    recordSampleRate录音采样率(Hz),可以设为 16000、32000(默认)、44100 或 48000。
    recordQuality录音音质,只在 AAC 格式下有效。详细说明请参考 NERtcConstants.AudioRecordingQuality
    recordPosition录音对象。
    • MIXED_RECORDING_AND_PLAYBACK(默认):录制房间内所有成员混流后的音频数据。
    • RECORDING:仅录制本地用户发布的音频流。
    • PLAYBACK:仅录制所有远端用户混流后的音频数据。
    recordCycleTime循环缓存的最大时长跨度。该参数单位为秒,可以设为 0、10、60、360、900,默认值为 0,即实时写文件。
    返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ startBeauty()

abstract int com.netease.lava.nertc.sdk.NERtcEx.startBeauty ( )
abstract

开启美颜功能模块。

自从
V4.6.10
使用前提
请先调用 NERtc#enableLocalVideo() 方法开启本地视频采集。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
开启美颜功能模块后,默认无美颜效果,您需要通过 NERtcEx#setBeautyEffect() 或其他滤镜等相关接口设置美颜或滤镜效果。
示例代码
NERtcEx.getInstance().startBeauty();
相关接口
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ startChannelMediaRelay()

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

开始跨房间媒体流转发。

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

◆ startLastmileProbeTest()

abstract int com.netease.lava.nertc.sdk.NERtcEx.startLastmileProbeTest ( LastmileProbeConfig  config)
abstract

开始通话前网络质量探测。
启用该方法后,SDK 会通过回调方式反馈上下行网络的质量状态与质量探测报告,包括带宽、丢包率、网络抖动和往返时延等数据。一般用于通话前的网络质量探测场景,用户加入房间之前可以通过该方法预估音视频通话中本地用户的主观体验和客观网络状态。
相关回调如下:

  • onLastmileQuality:网络质量状态回调,以打分形式描述上下行网络质量的主观体验。该回调视网络情况在约 5 秒内返回。
  • onLastmileProbeResult:网络质量探测报告回调,报告中通过客观数据反馈上下行网络质量。该回调视网络情况在约 30 秒内返回。
    注解
  • 请在加入房间(joinChannel)前调用此方法。
  • 调用该方法后,在收到 onLastmileQualityonLastmileProbeResult 回调之前请不要调用其他方法,否则可能会由于 API 操作过于频繁导致此方法无法执行。
    自从
    V4.5.0
    参数
    configLast mile 网络探测配置。详细说明请参考 LastmileProbeConfig
    返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ startPushStreaming()

abstract int com.netease.lava.nertc.sdk.NERtcEx.startPushStreaming ( NERtcPushStreamingConfig  config)
abstract

开始推流。

通过本接口可以实现将音视频流(RTMP流)推送到 CDN。观众端可以通过指定的 CDN 推流地址(streamingUrl)进行拉流观看。

业务场景
用于单人直播、PK直播、连麦等场景。
自从
V4.6.420
调用时机
请在初始化后调用该方法。
注解
startPushStreaming 接口跟 joinChannel 互斥,调用startPushStreaming 接口后,请不要再调用 joinChannel 接口加入房间。
参数说明
参数名称 类型 描述
config NERtcPushStreamingConfig 推流参数
相关回调
推流成功后,房间内的用户会收到 onStartPushStreaming 的回调。
示例代码
NERtcPushStreamingConfig config = new NERtcPushStreamingConfig();
config.streamingRoomInfo = new NERtcStreamingRoomInfo(uid, channelName, token);
config.streamingUrl = streamingUrl;
NERtcEx.getInstance().startPushStreaming(config);
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):错误的参数。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ startScreenCapture()

abstract int com.netease.lava.nertc.sdk.NERtcEx.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 = NERtcEx.getInstance().startScreenCapture(screenProfile, data, new MediaProjection.Callback() {
@Override
public void onStop() {
super.onStop();
showToast("录屏已停止");
}
});
相关回调
成功开启屏幕共享辅流后,远端会触发 NERtcCallbackEx#onUserSubStreamVideoStart() 回调。
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ stopAllEffects()

abstract int com.netease.lava.nertc.sdk.NERtcEx.stopAllEffects ( )
abstract

停止播放所有音效文件。 通过此接口可以实现在同时播放多个音效文件时,可以一次性停止播放所有文件(含暂停播放的文件)。

自从
V3.5.0
使用前提
请先调用 NERtcEx#playEffect() 接口播放音效文件。
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
示例代码
NERtcEx.getInstance().stopAllEffects();
相关接口
可以调用 NERtcEx#stopEffect() 方法停止播放指定音效文件。
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。

◆ stopAudioDump()

abstract int com.netease.lava.nertc.sdk.NERtcEx.stopAudioDump ( )
abstract

结束记录音频 dump。

自从
V3.5.0
使用前提
请先调用 NERtcEx#startAudioDumpWithType() 方法开始记录音频 dump。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
示例代码
NERtcEx.getInstance().stopAudioDump();
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ stopAudioMixing()

abstract int com.netease.lava.nertc.sdk.NERtcEx.stopAudioMixing ( )
abstract

停止伴音。
通过本接口可以实现停止播放本地或在线音频文件,或者录音设备采集的混音音频流。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
示例代码
NERtcEx.getInstance().stopAudioMixing();
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化或当前未在播放伴音。

◆ stopAudioRecording()

abstract int com.netease.lava.nertc.sdk.NERtcEx.stopAudioRecording ( )
abstract

停止客户端本地录音。 本端用户离开房间时会自动停止本地录音,也可以通过此接口实现在通话过程中随时停止录音。

自从
V4.2.0
使用前提
请先调用 NERtcEx#startAudioRecordingWithConfig() 方法开启客户端本地音频录制。
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
示例代码
NERtcEx.getInstance().stopAudioRecording()
相关回调
调用此接口成功后会触发 NERtcCallbackEx#onAudioRecording() 回调,通知音频录制任务状态已更新。音频录制状态码请参考 NERtcConstants.AudioRecordingCode
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。

◆ stopBeauty()

abstract void com.netease.lava.nertc.sdk.NERtcEx.stopBeauty ( )
abstract

结束美颜功能模块。
通过此接口实现关闭美颜功能模块后,SDK 会自动销毁美颜引擎并释放资源。

自从
V4.6.10
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
示例代码
NERtcEx.getInstance().stopBeauty();
返回
无返回值。

◆ stopChannelMediaRelay()

abstract int com.netease.lava.nertc.sdk.NERtcEx.stopChannelMediaRelay ( )
abstract

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

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

◆ stopEffect()

abstract int com.netease.lava.nertc.sdk.NERtcEx.stopEffect ( int  effectId)
abstract

停止播放指定音效文件。

自从
V3.5.0
使用前提
请先调用 NERtcEx#playEffect() 接口播放音效文件。
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
参数说明
参数名称 类型 描述
effectId int 指定音效文件的 ID,每个音效文件均有唯一的 ID。

示例代码
NERtcEx.getInstance().stopEffect(id);
返回
  • 0(OK):方法调用成功;
  • 其他:方法调用失败。
    • 30003(ENGINE_ERROR_INVALID_PARAM):未找到 ID 对应的音效文件。
    • 30005(ENGINE_ERROR_INVALID_STATE):引擎尚未初始化。

◆ stopLastmileProbeTest()

abstract int com.netease.lava.nertc.sdk.NERtcEx.stopLastmileProbeTest ( )
abstract

停止通话前网络质量探测。

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

◆ stopPushStreaming()

abstract int com.netease.lava.nertc.sdk.NERtcEx.stopPushStreaming ( )
abstract

停止推流。
通过此接口可以停止当前正在进行的RTMP推流

自从
V4.6.420
使用前提
建议在通过 NERtcEx#startPushStreaming 接口开启推流后调用此方法。
调用时机
请在引擎初始化之后调用此接口,且该方法在startPushStreaming开始推流之后可以调用
注解
  • 在单人直播场景中,调用stopPushStreaming方法,会离开当前的RTC房间。
  • 在PK直播和连麦场景中,调用stopPushStreaming方法,仅停止RTMP推流,不会离开当前的RTC房间
相关回调
推流成功后,房间内的用户会收到 onStopPushStreaming 的回调。
示例代码
NERtcEx.getInstance().stopPushStreaming();
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。 @end

◆ stopScreenCapture()

abstract void com.netease.lava.nertc.sdk.NERtcEx.stopScreenCapture ( )
abstract

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

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

◆ subscribeRemoteSubStreamAudio()

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

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

自从
V4.6.10
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间且收到远端用户开启音频辅流的回调 NERtcCallbackEx#onUserSubStreamAudioStart() 后调用。
注解
  • 加入房间时,默认订阅所有远端用户的音频流。
  • 请在指定远端用户加入房间后再调用此方法。
参数说明
参数名称 类型 描述
uid long 远端用户 ID。
subscribe boolean 是否订阅指定音频辅流:
  • true:订阅指定音频辅流。
  • false:取消订阅指定音频辅流。
示例代码
//订阅对方音频辅流
NERtcEx.getInstance().subscribeRemoteSubStreamAudio(12345, true);
//取消订阅对方音频辅流
NERtcEx.getInstance().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.NERtcEx.subscribeRemoteSubStreamVideo ( long  uid,
boolean  subscribe 
)
abstract

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

自从
V3.9.0
使用前提
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数说明
参数名称 类型 描述
uid long 远端用户 ID。
subsribe boolean 是否订阅远端的视频辅流:
  • true:订阅远端视频辅流。
  • false:取消订阅远端视频辅流。
示例代码
//订阅远端用户 12345 的视频辅流数据
NERtcEx.getInstance().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):媒体会话尚未建立。

◆ switchCamera()

abstract int com.netease.lava.nertc.sdk.NERtcEx.switchCamera ( )
abstract

切换前置或后置摄像头。

自从
V3.5.0
使用前提
请在调用 NERtc#startVideoPreview()NERtc#joinChannel(String token,String channelName,long uid,NERtcJoinChannelOptions channelOptions) 方法且开启摄像头之后调用此接口。
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 该方法需要在相机启动后才可调用。
示例代码
NERtcEx.getInstance().switchCamera();
返回
  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30005(ENGINE_ERROR_INVALID_STATE):状态错误,比如引擎尚未初始化。

◆ switchCameraWithPosition()

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

指定前置/后置摄像头。
该方法需要在相机启动后调用,例如调用 NERtc#startVideoPreview(NERtcVideoStreamType streamType)NERtc#joinChannel() 后。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.6.10
参数
cameraPos相机类型。详细信息请参考 NERtcConstants.CameraPosition。该参数为必填参数,若未赋值,SDK 会报错。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ switchChannel() [1/2]

abstract int com.netease.lava.nertc.sdk.NERtcEx.switchChannel ( String  token,
String  channelName 
)
abstract

快速切换音视频房间。 通过此接口可以实现当房间场景为直播场景时,房间中角色为观众的成员从当前房间快速切换至另一个房间。

使用前提
请先通过 NERtcEx#setChannelProfile() 接口设置房间模式为直播模式,并通过 NERtcEx#setClientRole() 接口设置房间成员的角色为观众。
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
注解
房间成员成功切换房间后,默认订阅房间内所有其他成员的音频流,因此会产生用量并产生计费;若想取消订阅,可以调用 NERtc#subscribeRemoteAudioStream() 方法,并设置 subscribe 参数为 false。
参数说明
参数名称 类型 描述
token String 在服务器端生成的用于鉴权的安全认证签名(Token),可设置为:
  • 已获取的 NERTC Token。安全模式下必须设置为获取到的 Token,默认 Token 有效期为 10min,也可以定期通过应用服务器向云信服务器申请 Token 或者申请长期且可复用的 Token。
  • null。调试模式下可设置为 null。安全性不高,建议在产品正式上线前在云信控制台中将鉴权方式恢复为默认的安全模式。
channelName String 期望切换到的目标房间名称。
示例代码
//切换房间名为"12345"的rtc房间
NERtcEx.getInstance().switchChannel("12345");
相关回调
成功调用此接口切换房间后:
返回
  • 0(OK): 方法调用成功。
  • 其他:方法调用失败。
    • 403(RESERVE_ERROR_NO_PERMISSION):没有权限,比如主播无法切换房间。
    • 30003(ENGINE_ERROR_INVALID_PARAM):参数错误,比如房间名称为空字符串。
    • 30004(ENGINE_ERROR_NOT_SUPPORTED):不支持的操作,比如当前是 1 对 1 模式。
    • 30005(ENGINE_ERROR_INVALID_STATE):当前状态不支持的操作,比如引擎尚未初始化。
    • 30100(ENGINE_ERROR_ROOM_ALREADY_JOINED):重复加入房间。
    • 30109(ENGINE_ERROR_SWITCH_CHANNEL_NOT_JOINED):尚未加入房间。

◆ switchChannel() [2/2]

abstract int com.netease.lava.nertc.sdk.NERtcEx.switchChannel ( String  token,
String  channelName,
NERtcJoinChannelOptions  channelOptions 
)
abstract

快速切换音视频房间。 房间场景为直播场景时,房间中角色为观众的成员可以调用该方法从当前房间快速切换至另一个房间。 成功调用该方切换房间后:

◆ takeLocalSnapshot()

abstract int com.netease.lava.nertc.sdk.NERtcEx.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.NERtcEx.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.NERtcEx.updateChannelMediaRelay ( NERtcMediaRelayParam.ChannelMediaRelayConfiguration  config)
abstract

更新媒体流转发的目标房间。

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

◆ updateLiveStreamTask()

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

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

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

◆ uploadSdkInfo()

abstract void com.netease.lava.nertc.sdk.NERtcEx.uploadSdkInfo ( )
abstract

上传 SDK 信息。
只能在加入房间后调用。上传的信息包括 log 和 Audio dump 等文件。


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