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

Public 成员函数

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 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 setCameraCaptureConfig (NERtcCameraCaptureConfig captureConfig)
 
abstract int startVideoPreview ()
 
abstract int stopVideoPreview ()
 
abstract int setupLocalVideoCanvas (IVideoRender render)
 
abstract int setupRemoteVideoCanvas (IVideoRender render, long uid)
 
abstract int enableLocalVideo (boolean enable)
 
abstract int subscribeRemoteVideoStream (long uid, NERtcRemoteVideoStreamType streamType, boolean subscribe)
 
abstract void setParameters (NERtcParameters params) throws IllegalArgumentException
 

静态 Public 成员函数

static NERtc getInstance ()
 
static NERtcVersion version ()
 
static List< String > checkPermission (Context context)
 

详细描述

NERtc

成员函数说明

◆ checkPermission()

static List<String> com.netease.lava.nertc.sdk.NERtc.checkPermission ( Context  context)
static

音视频通话相关的多媒体设备权限检查。

参数
context上下文。
返回
返回缺失的权限。

◆ enableLocalAudio()

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

开启/关闭本地音频采集和发送。
当 App 加入房间时,语音功能默认为开启状态。
该方法不影响接收或播放远端音频流,enableLocalAudio(false) 适用于只下行不上行音频流的场景。
成功调用该方法后,房间内其他用户触发 onUserAudioStart 或 onUserAudioStop 回调。

注解
  • 该方法与 muteLocalAudioStream 的区别在于,enableLocalAudio 用于开启本地语音采集及处理;muteLocalAudioStream 用于停止或继续发送本地音频流。
  • 该方法设置内部引擎为启用状态,在 leaveChannel 后仍然有效。
  • 从 V4.4.0 版本开始,开启或关闭本地音频采集的操作不再影响音乐文件播放,即 enableLocalAudio(NO) 后仍旧可以通过 startAudioMixing 播放音乐文件。
参数
enable是否开启本地语音。
  • true:(默认)重新开启本地语音,即开启本地语音采集。
  • false: 关闭本地语音,即停止本地语音采集。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ enableLocalVideo()

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

是否开启本地视频采集。
注意

  • 该方法在加入房间前和加入房间后均可调用。
  • 成功启用或禁用本地视频采集后,远端会触发 onUserVideoStop 或 onUserVideoStart 回调。
    参数
    enable是否启用本地视频采集:
  • true:(默认)开启本地视频采集。
  • false:关闭本地摄像头设备。关闭后,远端用户会接收不到本地用户的视频流;但本地用户依然可以接收远端用户的视频流。
    返回
    0
    方法调用成功,其他调用失败

◆ getInstance()

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

获取 NERtc 实例。

返回
NERtc 实例

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

◆ init()

abstract void com.netease.lava.nertc.sdk.NERtc.init ( Context  context,
String  appkey,
NERtcCallback  callback,
NERtcOption  option 
) throws Exception
abstract

创建 NERtc 实例并初始化 NERTC SDK 服务。

  • 请确保在调用其他 API 前先调用该方法创建并初始化 NERtc 实例。
  • 使用同一个 App Key 的 App 才能进入同一个房间进行通话或直播。
  • 一个 App Key 只能用于创建一个 NERtc 实例。如需更换 App Key,必须先调用 NERtc#release() 方法销毁当前实例,再调用本方法重新创建实例。
  • 若不再使用 NERtc 实例,需要 NERtc#release() 调用进行销毁。
  • 创建实例时,如果参数设置错误,可能会出现异常 RuntimeException、UnsatisfiedLinkError。
    参数
    context传入的 RTC engine context 对象。
    appkey应用的 App Key。在 云信控制台 创建应用后,可以查看对应的 App Key。
    callback回调函数,所有接口均在主线程上回调, 可继承简易实现AbsNERtcCallbackEx, 或自行选择实现NERtcCallbackNERtcCallbackEx
    option其他可选配置,详细信息请参考 NERtcOption 。可设置为 null。

◆ joinChannel()

abstract int com.netease.lava.nertc.sdk.NERtc.joinChannel ( String  token,
String  channelName,
long  uid 
)
abstract

加入音视频房间。
加入音视频房间时,如果指定房间尚未创建,云信服务器内部会自动创建一个同名房间。
成功调用该方加入房间后,本地会触发 onJoinChannel 回调,远端会触发 onUserJoined 回调。

注解
  • SDK 加入房间后,同一个房间内的用户可以互相通话,多个用户加入同一个房间,可以群聊。使用不同 App Key 的 App 之间不能互通。
  • 直播场景中,观众角色可以通过 switchChannel 切换房间。
  • 调用 joinChannel 之后,NERTC SDK 会通过 Android 的 AudioManager.setMode() 方法调整音频模式(audio mode),此后请勿修改 SDK 调整过的音频模式,否则会导致音频路由错误等问题。
参数
token安全认证签名(NERTC Token)。可设置为:
  • null。调试模式下可设置为 null。安全性不高,建议在产品正式上线前在云信控制台中将鉴权方式恢复为默认的安全模式。
  • 已获取的NERTC Token。安全模式下必须设置为获取到的 Token 。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
channelName房间名称,设置相同房间名称的用户会进入同一个通话房间。
  • 字符串格式,长度为 1~64 字节。
  • 支持以下89个字符:a-z, A-Z, 0-9, space, !#$%&()+-:;≤.,>? @[]^_{|}~”
uid用户的唯一标识 id,房间内每个用户的 uid 必须是唯一的。
uid 可选,默认为 0。如果不指定(即设为 0),SDK 会自动分配一个随机 uid,并在 onJoinChannel 回调方法中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。
返回
0
方法调用成功,其他失败
参见
NERtc::leaveChannel()

◆ leaveChannel()

abstract int com.netease.lava.nertc.sdk.NERtc.leaveChannel ( )
abstract

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

注解
  • 该方法是异步操作,调用返回时并没有真正退出频道。在真正退出房间后,SDK 会触发 onLeaveChannel 回调。
  • 如果在调用 leaveChannel 后立即调用 release,可能会无法正常离开房间。因此建议用户在收到 onLeaveChannel 回调之后再调用 release 释放会话相关所有资源。
返回
0
成功,其他失败.
参见
NERtc::joinChannel(String, String, long)

◆ release()

abstract void com.netease.lava.nertc.sdk.NERtc.release ( )
abstract

销毁 NERtc 实例,释放资源。
该方法释放 NERTC SDK 使用的所有资源。有些 App 只在用户需要时才进行实时音视频通信,完成音视频通话后,则将资源释放出来用于其他操作,该方法适用于此类情况。

  • 该接口需要在调用 leaveChannel、并收到 onUserLeave 回调后调用。或收到 onDisconnect 回调、重连失败时调用此接口销毁实例,并释放资源。
  • 调用 release 方法后,您将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通话功能,您必须等待 release 方法执行结束后,重新创建一个新的 NERtc 实例。
    注解
  • NERtc#release() 方法需要和 NERtc#leaveChannel() 方法在同一线程中,且需要在 leaveChannel 后执行。如果在不同线程中并发调用此接口可能会引起应用崩溃。
  • 如果 init 初始化引擎失败,需要等待 release 同步返回后再次初始化引擎,否则重复初始化引擎,SDK 会抛出 RuntimeException。

◆ setAudioProfile()

abstract int com.netease.lava.nertc.sdk.NERtc.setAudioProfile ( int  profile,
int  scenario 
)
abstract

设置音频编码属性。

注解
该方法需要在 init 之前设置。
参数
profile设置采样率、码率、编码模式和声道数。详细信息请参考 NERtcConstants.AudioProfile
scenario设置音频应用场景。详细信息请参考 NERtcConstants.AudioScenario
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setCameraCaptureConfig()

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

设置本地摄像头的采集偏好等配置。
在视频通话或直播中,SDK 自动控制摄像头的输出参数。默认情况下,SDK 根据用户的 setLocalVideoConfig 配置匹配最合适的分辨率进行采集。但是在部分业务场景中,如果采集画面质量无法满足实际需求,可以调用该接口调整摄像头的采集配置。

  • 需要采集并预览高清画质时,可以将采集偏好设置为 CAPTURE_PREFERENCE_OUTPUT_QUALITY,此时 SDK 会自动设置较高的摄像头输出参数,本地采集与预览画面比编码参数更加清晰。
  • 需要自定义设置摄像头采集的视频尺寸时,请通过参数 preference 将采集偏好设为 CAPTURE_PREFERENCE_MANUAL,并通过 NERtcCameraCaptureConfig 中的 captureWidth 和 captureHeight 自定义设置本地摄像头采集的视频宽高。
    注解
  • 该方法可以在加入房间前后动态调用,设置成功后,会自动重启采集模块。
  • 设置更高的采集参数会导致更大的性能消耗,例如 CPU 和内存占用等,尤其是在开启视频前处理的场景下。
    自从
    V4.5.0
    参数
    captureConfig摄像头采集配置,详细信息请参考 video.NERtcCameraCaptureConfig
    返回
    0
    方法调用成功,其他调用失败

◆ setLocalVideoConfig()

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

设置视频编码属性。

  • 可以在加入房间前或加入房间后调用此接口。
  • NERtcVideoConfig 中的 videoProfile 可以指定预设的 Profile 模式,但是预设模式往往无法满足实际场景需求,网易云信建议您通过 widthheight 进行自定义设置。详细信息请参考设置视频属性
    注解
  • 该接口为全量参数配置接口,重复调用此接口时,SDK 会刷新此前的所有参数配置,以最新的传参为准。所以每次修改配置时都需要设置所有参数,未设置的参数将取默认值。
  • 每个属性对应一套视频参数,例如分辨率、帧率、码率等。 所有设置的参数均为理想情况下的最大值。
    当视频引擎因网络环境等原因无法达到设置的分辨率、帧率或码率的最大值时,会取最接近最大值的那个值。
    参数
    videoConfig视频编码属性配置,详细信息请参考 video.NERtcVideoConfig
    返回
    0
    方法调用成功,其他调用失败

◆ setParameters()

abstract void com.netease.lava.nertc.sdk.NERtc.setParameters ( NERtcParameters  params) throws IllegalArgumentException
abstract

设置音视频通话的相关参数。
注意

  • 请在调用 init 初始化之前调用此方法。
  • 此方法提供技术预览或特别定制功能,若您需要使用此接口,请咨询技术支持获取帮助。
    参数
    params音视频通话的相关参数。

◆ setupLocalVideoCanvas()

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

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

注解
  • 该方法在加入频道前后均能调用。
  • 如果您希望在通话中更新本地用户视图的渲染或镜像模式,请使用 NERtcVideoView#setScalingType(int) 方法。
参数
render视频画布。详细信息请参考 video.NERtcVideoView
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setupRemoteVideoCanvas()

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

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

  • 如果 App 无法事先知道对方的用户 ID,可以在 APP 收到 onUserJoined 事件时设置。
  • 解除某个用户的绑定视图可以把 render 设置为空。
  • 退出房间后,SDK 会清除远程用户和视图的绑定关系。
  • 如果您希望在通话中更新本地用户视图的渲染或镜像模式,请使用 NERtcVideoView#setScalingType(int) 方法。
    参数
    render视频画布。详细信息请参考 video.NERtcVideoView
    uid远端用户 ID。
    返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ startVideoPreview()

abstract int com.netease.lava.nertc.sdk.NERtc.startVideoPreview ( )
abstract

开启视频预览。

  • 该方法用于在进入房间前启动本地视频预览。调用该 API 前,必须调用 setupLocalVideoCanvas 设置视频画布。
  • 启用本地视频预览后,在进入房间前,必须先调用 stopVideoPreview 关闭本地预览。
    返回
    0
    方法调用成功,其他调用失败

◆ stopVideoPreview()

abstract int com.netease.lava.nertc.sdk.NERtc.stopVideoPreview ( )
abstract

停止视频预览。
注意:该方法需要在加入房间前调用。

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

◆ subscribeAllRemoteAudioStreams()

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

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

注解
  • 加入房间时,默认订阅所有远端用户的音频,即 setParameters 接口的 KEY_AUTO_SUBSCRIBE_AUDIO 参数默认设置为 true,只有在该参数设置为 false 时,本接口的调用才生效。
  • 该方法加入房间前后都可调用。设置 subscribeAllRemoteAudioStreams 的参数为 true 后,对后续加入的用户同样生效。
参数
subscribe是否取消订阅所有远端用户的音频流。
  • true:(默认)订阅音频流。
  • false: 取消订阅音频流。
返回
0
方法调用成功,其他失败

◆ subscribeRemoteAudioStream()

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

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

参数
uid指定用户的 ID。
subscribe是否订阅指定音频流。
  • true:(默认)订阅音频流。
  • false: 取消订阅音频流。
返回
  • 0: 方法调用成功。
  • 30005: 状态异常,可能是自动订阅打开,导致该接口无效。
  • 其他: 方法调用失败。

◆ subscribeRemoteVideoStream()

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

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

注解
  • 用户加入房间之后,默认不订阅远端用户的视频流。如果希望看到指定远端用户的视频,可以在监听到对方加入房间或发布视频流之后,通过此方法订阅该用户的视频流。
  • 该方法需要在加入房间后调用。
参数
uid指定用户的用户 ID。
streamType订阅的视频流类型,详细信息请参考 video.NERtcRemoteVideoStreamType
subscribe是否取消订阅本地视频流。
  • true:(默认)订阅指定视频流。
  • false:不订阅指定视频流。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ version()

static NERtcVersion com.netease.lava.nertc.sdk.NERtc.version ( )
static

查询 SDK 版本号。
该方法在加入房间前后都能调用。

返回
NERtcVersion 版本号

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