Options
All
  • Public
  • Public/Protected
  • All
Menu

Namespace NERTC

Index

Functions

addEventListener

  • addEventListener(event: string, callback: Function): void
  • 添加事件回调。

    since

    5.3.7 及以上。

    example
    this.engine.addEventListener("onJoinChannel", (result, channelId, elapsed, userID) => {
    this.engine.nertcPrint('加入房间成功 onJoinChannel:' + result)
    });
    

    Parameters

    • event: string

      事件名

    • callback: Function

      回调方法

    Returns void

adjustChannelPlaybackSignalVolume

  • adjustChannelPlaybackSignalVolume(volume: number): void
  • 调节本地播放的某个房间的所有用户的信号音量。

    详情描述:通过此接口可以实现在通话过程中随时调节本地播放的某个房间的所有用户的混音音量。

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    since

    5.3.7 及以上。

    note
    • 该方法设置内部引擎为启用状态,在 NERTC.leaveChannel 后失效,但在本次通话过程中有效。
    example
    //调整本地播放的某个房间内所有用户的音量为50
    this.engine.adjustChannelPlaybackSignalVolume(50);
    

    Parameters

    • volume: number

      播放音量,取值范围为 [0,400]

      • 0:静音。
      • 100(默认):原始音量。
      • 400:最大可为原始音量的 4 倍(自带溢出保护)。

    Returns void

adjustLoopBackRecordingSignalVolume

  • adjustLoopBackRecordingSignalVolume(volume: Number): void
  • 调整共享音频音量。

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    since

    5.5.21 及以上。

    example
     this.engine.adjustLoopBackRecordingSignalVolume(100)
    

    Parameters

    • volume: Number

      播放音量。取值范围为 [0, 400]。其中:

      • 0:静音。
      • 100:(默认)原始音量。

    Returns void

adjustRecordingSignalVolume

  • adjustRecordingSignalVolume(volume: number): void
  • 调节采集信号音量。

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

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    相关回调:

    1. 成功调用该方法切换本地用户的发流状态后,房间内其他用户会收到 [[NERTC.onUserAudioStart]](开启发送音频)或 [[NERTC.onUserAudioStop]](停止发送音频)的回调。

    相关接口:

    1. muteLocalAudio():
    • 在需要开启本地音频采集(监测本地用户音量)但不发送音频流的情况下,您也可以调用 NERTC.muteLocalAudio 方法。
    • 两者的差异在于, NERTC.muteLocalAudio 仍然保持与服务器的音频通道连接,而 NERTC.enableMediaPub 表示断开此通道,因此若您的实际业务场景为多人并发的大房间,建议您调用 NERTC.enableMediaPub 方法。
    since

    5.3.7 及以上。

    note
    • 该方法设置内部引擎为启用状态,在 NERTC.leaveChannel 后设置失效,将恢复至默认。
    • 建议设置本地采集音量为默认值(100)或小于该值,否则可能会导致音质问题。
    example
    //将采集音量设置为100
    this.engine.adjustRecordingSignalVolume(100);
    

    Parameters

    • volume: number

      采集信号音量,取值范围为 0 ~ 400。:

      • 0:静音。
      • 100(默认):原始音量。
      • 400:最大音量值(自带溢出保护)。

    Returns void

adjustUserPlaybackSignalVolume

  • adjustUserPlaybackSignalVolume(param: { userID: number; userStringID: string; volume: number }): void
  • 调节本地播放的指定远端用户的信号音量。

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

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    since

    5.3.7 及以上。

    note
    • 该方法设置内部引擎为启用状态,在 NERTC.leaveChannel 后设置失效,将恢复至默认。但在本次通话过程中有效,比如指定远端用户中途退出房间,则再次加入此房间时仍旧维持该设置。
    • 该方法每次只能调整一位远端用户的播放音量,若需调整多位远端用户在本地播放的音量,则需多次调用该方法。
    example
    //调整uid为12345的用户在本地的播放音量为50
    this.engine.adjustUserPlaybackSignalVolume({
    userID: 12345,
    volume: 50
    });
    //调整uid为12345的用户在本地的播放音量为0,静音该用户。
    this.engine.adjustUserPlaybackSignalVolume({
    userID: 12345,
    volume: 0
    });
    

    Parameters

    • param: { userID: number; userStringID: string; volume: number }
      • userID: number

        远端用户 ID

      • userStringID: string

        设置要展示的对端具体成员的字符串格式的userID,用户如果业务上要求userID需要超过number的范围时可以使用

      • volume: number

        播放音量,取值范围为 [0,100]

        • 0:静音。
        • 100(默认):原始音量。

    Returns void

destroyEngine

  • destroyEngine(): void
  • 销毁 NERtc 实例,释放资源。

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

    调用时机:该接口需要在调用 NERTC.leaveChannel、并收到 NERtcCallback.onUserLeave 回调后调用。或收到 NERtcCallback.onDisconnect 回调、重连失败时调用此接口销毁实例,并释放资源。

    since

    5.3.7 及以上。

    note
    example
    this.engine.destroyEngine();
    

    Returns void

    void

destroyLocalSubStreamVideoCanvas

  • destroyLocalSubStreamVideoCanvas(): void
  • 销毁本地视频辅流的视图。

    详情描述:通过本接口可以实现解绑本地视频辅流用户和显示视图。

    since

    5.3.7 及以上。

    example
     this.engine.destroyLocalSubStreamVideoCanvas();
    

    Returns void

destroyLocalVideoCanvas

  • destroyLocalVideoCanvas(): void
  • 销毁本地用户视图。

    详情描述:通过本接口可以实现解绑本地用户和显示视图。

    since

    5.3.7 及以上。

    example
     this.engine.destroyLocalVideoCanvas();
    

    Returns void

destroyRemoteSubStreamVideoCanvas

  • destroyRemoteSubStreamVideoCanvas(videoCanvasParam: { userID: number; userStringID: string }): void
  • 销毁远端用户视频辅流视图。

    详情描述:通过本接口可以实现解绑远端用户和显示视图。

    since

    5.3.7 及以上。

    example
     this.engine.destroyRemoteSubStreamVideoCanvas({userID: 111})
    

    Parameters

    • videoCanvasParam: { userID: number; userStringID: string }

      设置视频画布的参数

      • userID: number

        设置要展示的对端具体成员的userID。

      • userStringID: string

        设置要展示的对端具体成员的字符串格式的userID,用户如果业务上要求userID需要超过number的范围时可以使用。

    Returns void

destroyRemoteVideoCanvas

  • destroyRemoteVideoCanvas(videoCanvasParam: { userID: number; userStringID: string }): void
  • 销毁远端用户视图。

    详情描述:通过本接口可以实现解绑远端用户和显示视图。

    since

    5.3.7 及以上。

    example
     this.engine.destroyRemoteVideoCanvas({userID: 111})
    

    Parameters

    • videoCanvasParam: { userID: number; userStringID: string }

      设置本地视频画布的参数。

      • userID: number

        设置要展示的对端具体成员的userID。

      • userStringID: string

        设置要展示的对端具体成员的字符串格式的userID,用户如果业务上要求userID需要超过number的范围时可以使用。

    Returns void

enableAudioVolumeIndication

  • enableAudioVolumeIndication(param: { enable: boolean; enableVad: boolean; interval: number }): void
  • 启用说话者音量提示。

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

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    业务场景: 适用于通过发言者的人声相关信息做出 UI 上的音量展示的场景,或根据发言者的音量大小进行视图布局的动态调整。

    相关回调:

    1. 启用该方法后,只要房间内有发流用户,无论是否有人说话,SDK 都会在加入房间后根据预设的时间间隔触发 onLocalAudioVolumeIndication()、onRemoteAudioVolumeIndication() 回调。
    since

    5.3.7 及以上。

    note
    • 该方法设置内部引擎为启用状态,在 NERTC.leaveChannel 后设置失效,将恢复至默认。
    example
    //设置间隔为500ms的人声音量提示
    this.engine.enableAudioVolumeIndication({
    enable: true,
    interval: 500,
    enableVad: false
    });
    

    Parameters

    • param: { enable: boolean; enableVad: boolean; interval: number }
      • enable: boolean

        是否启用说话者音量提示

      • enableVad: boolean

        是否启用本地采集人声监测

      • interval: number

        指定音量提示的时间间隔。单位为毫秒。必须设置为 100 毫秒的整数倍值,建议设置为 200 毫秒以上。

    Returns void

enableEarback

  • enableEarback(param: { enabled: boolean; volume: number }): void
  • 设置是否开启耳返功能。

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    since

    5.3.7 及以上。

    note
    • 加入房间后,耳返功能可以随时开启,但只有当插入耳机或耳麦时,耳返功能才会生效;当拔出耳机或耳麦时会自动暂停,再次插入耳机或耳麦自动恢复,且耳返功能可以实时关闭。
    example
    //将采集音量设置为100
    this.engine.enableEarback({
    enabled: true,
    volume: 100
    });
    

    Parameters

    • param: { enabled: boolean; volume: number }
      • enabled: boolean

        是否开启耳返功能

      • volume: number

        设置耳返音量。取值范围为 0 ~ 100,默认值为 100。

    Returns void

enableLocalAudio

  • enableLocalAudio(enable: boolean): void
  • 开启或关闭本地音频的采集和发送。

    详情描述:通过本接口可以实现开启或关闭本地语音功能,进行本地音频采集及处理。

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    业务场景: 适用于通过发言者的人声相关信息做出 UI 上的音量展示的场景,或根据发言者的音量大小进行视图布局的动态调整。

    相关回调:

    1. 开启本地视频采集后,远端会收到 NERtcCallback.onUserAudioStart 回调。
    2. 关闭本地视频采集后,远端会收到 NERtcCallback.onUserAudioStop 回调。
    since

    5.3.7 及以上。

    note
    • 该方法设置内部引擎为开启或关闭状态, 在 NERTC.leaveChannel 后仍然有效。
    • 该方法会操作音频硬件设备,建议避免频繁开关,否则可能导致设备异常。
    example
    // 打开音频采集
    this.engine.enableLocalAudio(true)
    

    Parameters

    • enable: boolean

    Returns void

enableLocalVideo

  • 开启或关闭本地视频的采集与发送。

    详情描述:通过本接口可以实现开启或关闭本地视频,不影响接收远端视频。

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    业务场景: 适用于通过发言者的人声相关信息做出 UI 上的音量展示的场景,或根据发言者的音量大小进行视图布局的动态调整。

    相关回调:

    1. 开启本地视频采集后,远端会收到 NERtcCallback.onUserVideoStart 回调。
    2. 关闭本地视频采集后,远端会收到 NERtcCallback.onUserVideoStop 回调。
    since

    5.3.7 及以上。

    note
    • 该方法设置内部引擎为开启或关闭状态, 在 NERTC.leaveChannel 后仍然有效。
    • 在您的应用切到后台或者其他应用占用摄像头时,可能会导致摄像头打开失败,需要注册 camera 动态权限。
    example
    // MAIN: 主流, SUB: 辅流
    this.engine.enableLocalVideo({
    videoStreamType: NERtcVideoStreamType.MAIN,
    enable: true
    })
    

    Parameters

    • param: { enable: boolean; videoStreamType: NERtcVideoStreamType }

      启用本地video参数

      • enable: boolean

        是否开启本地视频采集与发送: - true:启用本地视频采集。 - false:关闭本地视频采集。

      • videoStreamType: NERtcVideoStreamType

        视频类型:

        • MAIN:视频主流(默认摄像头)
        • SUB:视频辅流(默认屏幕共享)

    Returns void

enableLoopbackRecording

  • enableLoopbackRecording(enable: Boolean): void
  • 是否开启音频共享。

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    since

    5.5.21 及以上。

    example
     this.engine.enableLoopbackRecording(true)
    

    Parameters

    • enable: Boolean

      是否开启。

    Returns void

enableMediaPub

  • enableMediaPub(enable: boolean): void
  • 开启或关闭本地媒体流(主流)的发送。

    详情描述:该方法用于开始或停止向网络发送本地音频或视频数据。 该方法不影响接收或播放远端媒体流,也不会影响本地音频或视频的采集状态。

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    since

    5.3.7 及以上。

    note
    • 该方法暂时仅支持控制音频流的发送。
    • 停止发送媒体流的状态会在通话结束后被重置为允许发送。
    example
     this.engine.enableMediaPub(true);
    

    Parameters

    • enable: boolean

      是否发布本地音频流

    Returns void

getConnectionState

  • 获取当前房间连接状态。

    调用时机:请在初始化后调用该方法。

    since

    5.3.7 及以上。

    example
     const connectState = this.engine.getConnectionState();
    

    Returns NERTCChannelConnectionState

isServiceEnable

  • isServiceEnable(serverType: String): void
  • 用于检查当前APP是否配置启动了某些服务。

    详情描述:安卓端专用,用于检查当前APP是否配置启动了某些服务(比如前台服务)。

    调用时机:请在初始化后调用该方法。

    since

    5.5.21 及以上。

    example
     //检查是否开启了前台服务
    this.engine.isServiceEnable('FOREGROUND_SERVICE')
    

    Parameters

    • serverType: String

      要检查了安卓服务类型

    Returns void

joinChannel

  • joinChannel(channelParam: { channelName: string; mySringUid: string; myUid: number; token: string }): void
  • 加入音视频房间。

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

    调用时机:请在初始化引擎后调用该方法。

    使用限制:无。

    相关接口:

    1. 您可以调用 NERTC.leaveChannel 方法离开房间。

    相关回调:

    1. 成功调用该方法加入房间后,本地会触发 NERtcCallback.onJoinChannel 回调通知,远端会触发 NERtcCallback.onUserJoined 回调通知。
    since

    5.3.7 及以上。

    note
    • 调用 NERTC.joinChannel 方法之后,NERTC SDK 会通过按照默认配置调整音频模式(audio mode),此后请勿修改 SDK 调整过的音频模式,否则可能会导致音频路由错误等问题。
    • 加入音视频房间时,如果指定房间尚未创建,云信服务器内部会自动创建一个同名房间。
    • 传参中 uid 可选,若不指定则默认为 0,SDK 会自动分配一个随机 uid,并在 NERTC.joinChannel 回调方法中返回;App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。
    • 同一个房间内的用户可以互相通话,多个用户加入同一个房间,可以群聊。使用不同 App Key 的 App 之间不能互通。
    example
        this.engine.joinChannel({
    token: '',
    channelName: 'xxx',
    myUid: 100
    });
    

    Parameters

    • channelParam: { channelName: string; mySringUid: string; myUid: number; token: string }

      加入房间时的参数。

      • channelName: string

        房间名称,设置相同房间名称的用户会进入同一个通话房间。 - 字符串格式,长度为 1 ~ 64 字节。

        • 支持以下 89 个字符:a-z, A-Z, 0-9, space, !#$%&()+-:;≤.,>? @[]^_{|}~”。
      • mySringUid: string
      • myUid: number

        用户的唯一标识 ID。

      • token: string

        安全认证签名(NERTC Token),可以设置为: - ''。调试模式下可设置为 null。安全性不高,建议在产品正式上线前在云信控制台中将鉴权方式恢复为默认的安全模式。

        • 已获取的NERTC Token。安全模式下必须设置为获取到的 Token 。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。

    Returns void

leaveChannel

  • leaveChannel(): void
  • 离开音视频房间。

    详情描述:通过本接口可以实现挂断或退出通话,并释放本房间内的相关资源。

    调用时机:请在初始化并成功加入房间后调用该方法。

    相关回调:

    1. 成功调用该方法离开房间后,本地会触发 NERtcCallback.onLeaveChannel 回调通知,远端会触发 NERtcCallback.onUserLeave 回调通知。
    since

    5.3.7 及以上。

    note
    - 结束通话时必须调用此方法离开房间否则无法开始下一次通话
    
    example
     this.engine.leaveChannel();
    

    Returns void

muteLocalAudio

  • muteLocalAudio(mute: boolean): void
  • 开启或关闭本地音频主流的发送。

    详情描述:该方法用于向网络发送或取消发送本地音频数据,不影响本地音频的采集状态,也不影响接收或播放远端音频流。

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    相关回调:

    1. 若本地用户在说话,成功调用该方法后,房间内其他用户会收到 NERtcCallback.onUserAudioMute 回调
    since

    5.3.7 及以上。

    note
    • 该方法设置内部引擎为开启或关闭状态, 在 NERTC.leaveChannel 后仍然有效。
    example
    // 打开音频采集
    this.engine.muteLocalAudio(true)
    

    Parameters

    • mute: boolean

      是否关闭本地音频的发送: - true:不发送本地音频。 - false:发送本地音频。

    Returns void

muteLocalVideo

  • muteLocalVideo(mute: boolean): void
  • 取消或恢复发布本地视频。

    详情描述:调用该方法取消发布本地视频主流或辅流后,SDK 不再发送本地视频流。

    调用时机:一般在通过 NERTC.enableLocalVideo 接口开启本地视频采集并发送后调用该方法。

    业务场景: 适用于通过发言者的人声相关信息做出 UI 上的音量展示的场景,或根据发言者的音量大小进行视图布局的动态调整。

    相关回调:

    1. 开启本地视频采集后,远端会收到 NERtcCallback.onUserVideoStart 回调。
    2. 关闭本地视频采集后,远端会收到 NERtcCallback.onUserVideoStop 回调。
    since

    5.3.7 及以上。

    note
    • 该方法设置内部引擎为开启或关闭状态, 在 NERTC.leaveChannel 后仍然有效。
    • 调用该方法取消发布本地视频流时,设备仍然处于工作状态。
    • 该方法仅适用于视频主流,若您希望取消或恢复发布视频辅流,请调用 NERTC.muteLocalVideo方法
    example
    this.engine.muteLocalVideo(true)
    

    Parameters

    • mute: boolean

      是否取消发布本地视频流:

    Returns void

nertcPrint

  • nertcPrint(message: string): void
  • 原生插件日志接口。

    详情描述:原生java暴露的日志输出接口,可以输入到android Studio/xcode的控制台,以及写入手机日志文件中。

    调用时机:开发者js开发语言的业务console日志需要存入系统日志文件时。

    since

    5.3.7 及以上。

    note

    -该接口默认写入sdk的系统日志文件中,日志等级为INFO。

    example
     const message = "这是一个调试日志"
    this.engine.nertcPrint(message);
    

    Parameters

    • message: string

      要打印的日志log

    Returns void

rePlayAudio

  • rePlayAudio(userID: Number): void
  • 重新播放对端的音频流。

    since

    5.5.11 及以上。

    note
    • userID可选,如果不填写,表示房间中其他所有人,都会执行resume。
    • 该方法仅适用H5平台
    example
    this.engine.rePlayAudio()
    

    Parameters

    • userID: Number

      远端的用户ID

    Returns void

removeAllEventListener

  • removeAllEventListener(): void
  • 移除所有的注册的回调事件。

    since

    5.3.7 及以上。

    Returns void

removeEventListener

  • removeEventListener(event: string, callback: Function): void
  • 移除事件回调。

    since

    5.3.7 及以上。

    Parameters

    • event: string

      事件名

    • callback: Function

      回调方法

    Returns void

resume

  • resume(userID: Number): void
  • 监测到自动播放受限后,重新播放音视频流。

    since

    5.5.11 及以上。

    note
    • userID可选,如果不填写,表示房间中其他所有人,都会执行resume。
    • 该方法仅适用H5平台
    example
    this.engine.resume()
    

    Parameters

    • userID: Number

      远端的用户ID

    Returns void

setAudioProfile

  • 设置音频编码属性。

    详情描述:通过此接口可以实现设置音频编码的采样率、码率、编码模式、声道数等,也可以设置音频属性的应用场景,包括聊天室场景、语音场景、音乐场景等。

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    since

    5.3.7 及以上。

    note
    • 音乐场景下,建议将 profile 设置为 HIGH_QUALITY。 若您通过 NERTC.setChannelProfile 接口设置房间场景为直播模式,即 LIVE_BROADCASTING,但未调用此方法设置音频编码属性,或仅设置 profile 为 DEFAULT,则 SDK 会自动设置 profile 为 HIGH_QUALITY,且设置 scenario 为 MUSIC。
    example
     this.engine.setAudioProfile({
    profile: NERTCAudioProfile.STANDARD, //设置profile为标准模式
    scenario: NERTCAudioScenario.SPEECH //scenario为语音场景
    })
    

    Parameters

    Returns void

setChannelProfile

  • 设置房间场景。

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

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间前调用。

    since

    5.3.7 及以上。

    example
     //设置房间场景为直播场景
    this.engine.setChannelProfile(NERTCChannelProfile.LIVE_BROADCASTING);
    

    Parameters

    Returns void

setClientRole

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

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

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间前调用。

    使用限制:该方法仅在通过 setChannelProfile() 方法设置房间场景为直播场景(LIVE_BROADCASTING)时调用有效。

    业务场景:适用于观众上下麦与主播互动的互动直播场景。

    注意事项:用户切换为观众角色时,SDK 会自动关闭音视频设备。

    相关回调:

    1. 加入房间前调用该方法设置用户角色,不会触发任何回调,在加入房间成功后角色自动生效:
      • 设置用户角色为主播:加入房间后,远端用户触发 onUserJoined() 回调。
      • 设置用户角色为观众:加入房间后,远端用户不触发任何回调。
    2. 加入房间后调用该方法切换用户角色
      • 从观众角色切为主播:本端用户触发 onClientRoleChange() 回调,远端用户触发 onUserJoined() 回调。
      • 从主播角色切为观众:本端用户触发 onClientRoleChange() 回调,远端用户触发 onUserLeave() 回调。
    since

    5.3.7 及以上。

    example
     //切换用户角色为主播
     this.engine.setClientRole(NERTCUserRole.CLIENT_ROLE_BROADCASTER);
    

    Parameters

    • role: NERTCUserRole

      用户角色

      • CLIENT_ROLE_BROADCASTER: 设置用户角色为主播。主播可以开关摄像头等设备、可以发布流、可以操作互动直播推流相关接口、加入或退出房间状态对其他房间内用户可见。
        • CLIENT_ROLE_AUDIENCE: 设置用户角色为观众。观众只能收流不能发流加入或退出房间状态对其他房间内用户不可见

    Returns void

setEarbackVolume

  • setEarbackVolume(volume: number): void
  • 设置耳返音量。

    调用时机:调用 NERTC.enableEarback 方法开启耳返功能之后,您可以调用 NERTC.setEarbackVolume 方法设置耳返音量。

    since

    5.3.7 及以上。

    example
    this.engine.setEarbackVolume(100);
    

    Parameters

    • volume: number

      设置耳返音量,可设置为 0~100,默认为 100。

    Returns void

setLocalVideoConfig

  • 设置视频编码属性。

    详情描述:通过此接口可以设置视频主流或辅流的编码分辨率、裁剪模式、码率、帧率、带宽受限时的视频编码降级偏好、编码的镜像模式、编码的方向模式参数。

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    since

    5.3.7 及以上。

    note
    • 每个属性对应一套视频参数,例如分辨率、帧率、码率等。所有设置的参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率、帧率或码率的最大值时,会取最接近最大值的那个值。
    • 此接口为全量参数配置接口,重复调用此接口时,SDK 会刷新此前的所有参数配置,以最新的传参为准。所以每次修改配置时都需要设置所有参数,未设置的参数将取默认值
    example
    let localVideoConfig = {
    videoStreamType: NERtcVideoStreamType.MAIN, // 表示是对视频主流的配置
    maxProfile: NERtcVideoProfileType.Standard, //不推荐使用了
    frameRate: NERtcVideoFrameRate.FRAME_RATE_FPS_24, //设置帧率24
    minFrameRate: NERtcVideoFrameRate.FRAME_RATE_FPS_15, //设置最小帧率15
    bitrate: 1500, //设置视频码率1500kbps
    minBitrate: 1000, //设置视频码率最小为1000kbps
    width: 1280, //设置视频宽为1280
    height: 720, //设置视频高为720
    cropMode: NERtcVideoCropMode.CROP_16x9, //视频采集宽高比为16:9
    degradationPreference: NERtcDegradationPreference.DEGRADATION_DEFAULT, //带宽受限时的视频编码降级偏好为默认
    mirrorMode: mirrorMode: NERTCMirrorMode.AUTO, //AUTO表示使用默认值,由sdk控制
    orientationMode: NERtcVideoOutputOrientationMode.VIDEO_OUTPUT_ORIENTATION_MODE_ADAPTATIVE //(默认)该模式下 SDK 输出的视频方向与采集到的视频方向一致。接收端会根据收到的视频旋转信息对视频进行旋转
    };
    this.engine.setLocalVideoConfig(localVideoConfig)
    

    Parameters

    Returns void

setParameters

  • setParameters(param: Object): void
  • 设置音视频通话的相关参数。

    详情描述:此接口提供技术预览或特别定制功能(比如AI降噪功能),详情请咨询技术支持或者开发者文档。

    调用时机:请在初始化后调用该方法,且该方法在加入房间前后均可调用。

    使用限制:无

    业务场景:适用于需要开启SDK特殊功能。

    since

    5.5.21 及以上。

    example
     //开启AI降噪功能
    this.engine.setParameters({
    keyAudioAINSEnable: true //开启AI降噪
    })
    //设置屏幕共享在前置摄像头下支持设置取消镜像
    this.engine.setParameters({
    keyVideoLocalPreviewMirror: true //设置屏幕共享在前置摄像头下支持设置取消镜像(安卓端)
    })
    

    Parameters

    • param: Object

      要开启的配置项

    Returns void

setSpeakerphoneOn

  • setSpeakerphoneOn(enable: boolean): void
  • 设置是否由扬声器播放声音。

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

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    since

    5.3.7 及以上。

    note
    • 若设备连接了耳机或蓝牙,则无法开启外放。
    example
     this.engine.setSpeakerphoneOn(true)
    

    Parameters

    • enable: boolean

      是否将音频路由到扬声器

    Returns void

setStatsObserver

  • setStatsObserver(enable: boolean): void

setupEngineWithContext

  • setupEngineWithContext(engineParam: { appkey: string; logDir: string; logLevel: NERTCLogLevel }): void
  • 创建 NERtc 实例。

    详情描述:创建 NERtc 实例。 通过本接口可以实现创建 NERtc 实例并初始化 NERTC SDK 服务。

    业务场景:是使用NERtc服务的前提。

    调用时机:请确保在调用其他 API 前先调用该方法创建并初始化 NERtc 实例。

    since

    5.3.7 及以上。

    note
    • 使用同一个 App Key 的 App 才能进入同一个房间进行通话或直播。
    • 一个 App Key 只能用于创建一个 NERtc 实例;若您需要更换 App Key,必须先调用 NERTC.destroyEngine 方法销毁当前实例,再调用本方法重新创建实例。
    • 创建实例时,如果参数设置错误,可能会出现 Exception、Error 异常回调通知。
    example
        import NERTC from "@/NERtcUniappSDK-JS/lib/index";
        import NERTCLogLevel from "@/NERtcUniappSDK-JS/lib/NERtcDefines"
    this.engine = NERTC.setupEngineWithContext({
    appKey: 'xxxxxxxxxx', // your appkey
    logDir: '', // expected log directory
    logLevel: NERTCLogLevel.INFO,
    });
    

    Parameters

    • engineParam: { appkey: string; logDir: string; logLevel: NERTCLogLevel }

      创建NERTC引擎时的参数

      • appkey: string
      • logDir: string

        SDK日志log文件的路径,可以传递为''

      • logLevel: NERTCLogLevel

        SDK日志log等级

    Returns void

setupLocalSubStreamVideoCanvas

  • 设置本端用户的视频辅流画布。

    详情描述:通过此接口可以实现设置本端用户的辅流显示视图。

    调用时机:请在初始化后调用该方法,且该方法在加入房间前后均可调用。

    使用限制:无。

    since

    5.3.7 及以上。

    note
    • 在实际业务中,通常建议在初始化后即调用该方法进行本地视图设置,然后再加入房间或开启预览。
    • 在无需使用画布时,建议及时释放之前的画布,否则可能会引起系统 EGL 资源耗尽而导致程序崩溃。
    example
        this.engine.setupLocalSubStreamVideoCanvas({
    renderMode: NERTCRenderMode.Fit, // Fit表示应区域。视频尺寸等比缩放,保证所有区域被填满,视频超出部分会被裁剪
    mirrorMode: NERTCMirrorMode.AUTO, //AUTO表示使用默认值,由sdk控制
    isMediaOverlay: false //表示小画布置于大画布上面
    })
    

    Parameters

    • videoCanvasParam: { isMediaOverlay: boolean; mirrorMode: NERTCMirrorMode; renderMode: NERTCRenderMode }

      设置本地视频辅流画布的参数。

      • isMediaOverlay: boolean

        设置视频View是否在Z轴上覆盖。

      • mirrorMode: NERTCMirrorMode

        设置视频镜像模式。

      • renderMode: NERTCRenderMode

        设置适应视频,视频尺寸等比缩放。

    Returns void

setupLocalVideoCanvas

  • 设置本地用户视图。

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

    调用时机:请在初始化后调用该方法,且该方法在加入房间前后均可调用。

    使用限制:无。

    since

    5.3.7 及以上。

    note
    • 在实际业务中,通常建议在初始化后即调用该方法进行本地视图设置,然后再加入房间或开启预览。
    • 在无需使用画布时,建议及时释放之前的画布,否则可能会引起系统 EGL 资源耗尽而导致程序崩溃。
    example
        this.engine.setupLocalVideoCanvas({
    renderMode: NERTCRenderMode.Fit, // Fit表示应区域。视频尺寸等比缩放,保证所有区域被填满,视频超出部分会被裁剪
    mirrorMode: NERTCMirrorMode.AUTO, //AUTO表示使用默认值,由sdk控制
    isMediaOverlay: false //表示小画布置于大画布上面
    })
    

    Parameters

    • videoCanvasParam: { isMediaOverlay: boolean; mirrorMode: NERTCMirrorMode; renderMode: NERTCRenderMode }

      设置本地视频画布的参数。

      • isMediaOverlay: boolean

        设置视频View是否在Z轴上覆盖。

      • mirrorMode: NERTCMirrorMode

        设置视频镜像模式。

      • renderMode: NERTCRenderMode

        设置适应视频,视频尺寸等比缩放。

    Returns void

setupRemoteSubStreamVideoCanvas

  • setupRemoteSubStreamVideoCanvas(videoCanvasParam: { isMediaOverlay: boolean; mirrorMode: NERTCMirrorMode; renderMode: NERTCRenderMode; userID: string }): void
  • 设置远端用户的视频辅流视图。

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

    调用时机:请在初始化后调用该方法,且该方法在加入房间前后均可调用。

    since

    5.3.7 及以上。

    note
    • 退出房间后,SDK 也会主动清除远端用户和视图的绑定关系。
    example
        this.engine.addEventListener("onUserSubStreamVideoStart", (userID, maxProfile, userStringID) => {
    const message = `onUserSubStreamVideoStart通知:对方开启屏幕共享,userID = ${userID}, maxProfile = ${maxProfile}`
    //设置对端的视频辅流画布
    this.engine.setupRemoteSubStreamVideoCanvas({
    renderMode: NERTCRenderMode.Fit, // Fit表示应区域。视频尺寸等比缩放,保证所有区域被填满,视频超出部分会被裁剪
    mirrorMode: NERTCMirrorMode.AUTO, //AUTO表示使用默认值,由sdk控制
    isMediaOverlay: false, //表示小画布置于大画布上面
    userID, //对方userID,可能会超过number范围,造成精度缺失
    userStringID //对方String格式的userID
    })
    //主动去订阅对端视频辅流
    this.engine.subscribeRemoteSubStreamVideo({
    userID,
    userStringID,
    streamType:NERtcRemoteVideoStreamType.HIGH, //HIGH: 大流, LOW: 小流 
    subscribe: true //true表示订阅,false表示取消订阅
    })
    });
    

    Parameters

    • videoCanvasParam: { isMediaOverlay: boolean; mirrorMode: NERTCMirrorMode; renderMode: NERTCRenderMode; userID: string }

      设置本地视频画布的参数。

      • isMediaOverlay: boolean

        设置视频View是否在Z轴上覆盖。

      • mirrorMode: NERTCMirrorMode

        设置视频镜像模式。

      • renderMode: NERTCRenderMode

        设置适应视频,视频尺寸等比缩放。

      • userID: string

        设置要展示的对端具体成员的userID。

    Returns void

setupRemoteVideoCanvas

  • setupRemoteVideoCanvas(videoCanvasParam: { isMediaOverlay: boolean; mirrorMode: NERTCMirrorMode; renderMode: NERTCRenderMode; userID: number; userStringID: string }): void
  • 设置远端用户视图。

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

    调用时机:请在初始化后调用该方法,且该方法在加入房间前后均可调用。

    since

    5.3.7 及以上。

    note
    • 退出房间后,SDK 也会主动清除远端用户和视图的绑定关系。
    example
        this.engine.addEventListener("onUserVideoStart", (userID, maxProfile, userStringID) => {
    const message = `onUserVideoStart通知:对方开启视频,userID = ${userID}, maxProfile = ${maxProfile}`
    console.log(message)
    //设置对端的视频画布
    this.engine.setupRemoteVideoCanvas({
    renderMode: NERTCRenderMode.Fit, // Fit表示应区域。视频尺寸等比缩放,保证所有区域被填满,视频超出部分会被裁剪
    mirrorMode: NERTCMirrorMode.AUTO, //AUTO表示使用默认值,由sdk控制
    isMediaOverlay: false, //表示小画布置于大画布上面
    userID: userID, //对方userID,可能会超过number范围,造成精度缺失
    userStringID //对方string格式的userID
    })
    //主动去订阅对端视频
    this.engine.subscribeRemoteVideo({
    userID,
    userStringID,
    streamType: NERtcRemoteVideoStreamType.HIGH, //HIGH: 大流, LOW: 小流 
    SUBscribe: true //true表示订阅,false表示取消订阅
    })
    });
    

    Parameters

    • videoCanvasParam: { isMediaOverlay: boolean; mirrorMode: NERTCMirrorMode; renderMode: NERTCRenderMode; userID: number; userStringID: string }

      设置本地视频画布的参数。

      • isMediaOverlay: boolean

        设置视频View是否在Z轴上覆盖。

      • mirrorMode: NERTCMirrorMode

        设置视频镜像模式。

      • renderMode: NERTCRenderMode

        设置适应视频,视频尺寸等比缩放。

      • userID: number

        设置要展示的对端具体成员的userID。

      • userStringID: string

        设置要展示的对端具体成员的字符串格式的userID,用户如果业务上要求userID需要超过number的范围时可以使用。

    Returns void

startPreview

  • 开启视频预览。

    详情描述:通过本接口可以实现在加入房间前启动本地视频预览,支持预览本地摄像头或外部输入视频。

    调用时机:请在初始化后调用该方法,且该方法仅可当不在房间内时可调用。

    业务场景:适用于加入房间前检查设备状态是否可用、预览视频效果等场景。

    使用限制:

    1. 请在通过 NERTC.setupLocalVideoCanvas 接口设置视频画布后调用该方法。
    note
    • 在加入房间前预览视频效果时设置的美颜、虚拟背景等视频效果在房间内仍然生效;在房间内设置的视频效果在退出房间后预览视频时也可生效。
    since

    5.3.7 及以上。

    example
    // MAIN: 主流, SUB: 辅流 
     this.engine.startPreview(NERtcVideoStreamType.MAIN)
    

    Parameters

    Returns void

startScreenCapture

  • 开启屏幕共享。

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

    调用时机:请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。

    相关回调:

    1. 成功开启屏幕共享辅流后,远端会触发 [[NERTC.onUserSubStreamVideoStart]] 回调。
    since

    5.3.7 及以上。

    note
    • v5.3.7版本仅仅支持安卓端
    example
        let screenConfigParam = {
    maxProfile: NERtcVideoProfileType.Standard, 
    frameRate: NERtcVideoFrameRate.FRAME_RATE_FPS_24, //设置帧率24
    minFrameRate: NERtcVideoFrameRate.FRAME_RATE_FPS_15, //设置最小帧率15
    bitrate: 2500, //设置屏幕共享码率1500kbps
    minBitrate: 1500, //设置屏幕共享码率最小为1000kbps
    contentPrefer: NERtcSubStreamContentPrefer.CONTENT_PREFER_DETAILS, //屏幕共享功能的编码策略倾向
    };
    this.engine.startScreenCapture(screenConfigParam)
    

    Parameters

    Returns void

stopPreview

  • 停止视频预览。

    详情描述:通过本接口可以实现在预览本地视频后关闭预览。

    调用时机:建议在通过 NERTC.startPreview 接口开启视频预览后调用该方法。

    since

    5.3.7 及以上。

    example
    // MAIN: 主流, SUB: 辅流 
     this.engine.stopPreview(NERtcVideoStreamType.MAIN)
    

    Parameters

    Returns void

stopScreenCapture

  • stopScreenCapture(): void
  • 关闭屏幕共享。

    详情描述:通过此接口可以实现关闭屏幕共享辅流。

    相关回调:

    1. 成功调用此方法后,远端会触发 [[NERTC.onUserSubStreamVideoStop]]
    since

    5.3.7 及以上。

    example
     this.engine.stopScreenCapture()
    

    Returns void

subscribeRemoteSubStreamVideo

  • subscribeRemoteSubStreamVideo(subscribeParam: { streamType: NERtcRemoteVideoStreamType; subscribe: boolean; userID: number; userStringID: string }): void
  • 订阅或取消订阅远端用户的视频辅流。

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

    调用时机:

    1. 请在初始化后调用该方法,且该方法仅可在加入房间后调用。
    2. 请先调用 [[NERTC.]setupRemoteSubStreamVideoCanvas] 设置远端用户的视频辅流画布
    3. 建议在收到远端用户发布视频辅流的回调通知 NERtcCallback.onUserSubStreamVideoStart 事件后调用此接口

    相关回调:

    1. NERtcCallback.onUserSubStreamVideoStart:远端用户发布视频辅流的回调。
    2. NERtcCallback.onUserSubStreamVideoStop:远端用户停止发布视频辅流的回调。
    since

    5.3.7 及以上。

    example
    this.engine.addEventListener("onUserSubStreamVideoStart", (userID, maxProfile, userStringID) => {
    const message = `onUserVideoStart通知:对方开启视频辅流,userID = ${userID}, maxProfile = ${maxProfile}`
    //设置对端的视频辅流画布
    this.engine.setupRemoteSubStreamVideoCanvas({
    renderMode: NERTCRenderMode.Fit, // Fit表示应区域。视频尺寸等比缩放,保证所有区域被填满,视频超出部分会被裁剪
    mirrorMode: NERTCMirrorMode.AUTO, //AUTO表示使用默认值,由sdk控制
    isMediaOverlay: false, //表示小画布置于大画布上面
    userID, //对方userID,如果其范围超过了Number,精度可能会缺失
    userStringID //对方String格式的userID,用于精度缺失的场景
    })
    //主动去订阅对端视频辅流
    this.engine.subscribeRemoteSubStreamVideo({
    userID,
    userStringID,
    streamType:NERtcRemoteVideoStreamType.HIGH, //HIGH: 大流, LOW: 小流 
    subscribe: true //true表示订阅,false表示取消订阅
    })
    });
    

    Parameters

    • subscribeParam: { streamType: NERtcRemoteVideoStreamType; subscribe: boolean; userID: number; userStringID: string }

      启用本地video参数

      • streamType: NERtcRemoteVideoStreamType

        视频类型:

        • HIGH:大流
        • LOW:小流
        • @return {void}
      • subscribe: boolean

        是否取消发布本地视频流: - true:取消发布本地视频辅流。 - false:恢复发布本地视频辅流。

      • userID: number

        对端userID:

      • userStringID: string

        对端具体成员的字符串格式的userID,用户如果业务上要求userID需要超过number的范围时可以使用

    Returns void

subscribeRemoteVideo

  • subscribeRemoteVideo(subscribeParam: { streamType: NERtcRemoteVideoStreamType; subscribe: boolean; userID: number; userStringID: string }): void
  • 订阅或取消订阅指定远端用户的视频主流。

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

    调用时机:请在初始化后调用该方法,且该方法仅可在加入房间后调用。

    业务场景: 适用于通过发言者的人声相关信息做出 UI 上的音量展示的场景,或根据发言者的音量大小进行视图布局的动态调整。

    相关回调:

    1. 开启本地视频采集后,远端会收到 NERtcCallback.onUserVideoStart 回调。
    2. 关闭本地视频采集后,远端会收到 NERtcCallback.onUserVideoStop 回调。
    since

    5.3.7 及以上。

    note
    • 该方法设置内部引擎为开启或关闭状态, 在 NERTC.leaveChannel 后仍然有效。
    • 调用该方法取消发布本地视频流时,设备仍然处于工作状态。
    • 该方法仅适用于视频主流
    example
    this.engine.addEventListener("onUserVideoStart", (userID, maxProfile, userStringID) => {
    const message = `onUserVideoStart通知:对方开启视频,userID = ${userID}, maxProfile = ${maxProfile}`
    //设置对端的视频画布
    this.engine.setupRemoteVideoCanvas({
    renderMode: NERTCRenderMode.Fit, // Fit表示应区域。视频尺寸等比缩放,保证所有区域被填满,视频超出部分会被裁剪
    mirrorMode: NERTCMirrorMode.AUTO, //AUTO表示使用默认值,由sdk控制
    isMediaOverlay: false, //表示小画布置于大画布上面
    userID, //对方userID,如果其范围超过了Number,精度可能会缺失
    userStringID //对方String格式的userID,用于精度缺失的场景
    })
    //主动去订阅对端视频
    this.engine.subscribeRemoteVideo({
    userID,
    userStringID,
    streamType: NERtcRemoteVideoStreamType.HIGH, //HIGH: 大流, LOW: 小流 
    subscribe: true //true表示订阅,false表示取消订阅
    })
    });
    

    Parameters

    • subscribeParam: { streamType: NERtcRemoteVideoStreamType; subscribe: boolean; userID: number; userStringID: string }

      启用本地video参数

      • streamType: NERtcRemoteVideoStreamType

        视频类型:

        • HIGH:大流
        • LOW:小流
      • subscribe: boolean

        是否订阅远端用户的视频流 - true:订阅指定视频流。 - false:不订阅指定视频流。

      • userID: number

        指定用户的 ID

      • userStringID: string

        对端具体成员的字符串格式的userID,用户如果业务上要求userID需要超过number的范围时可以使用

    Returns void

switchCamera

  • switchCamera(): void
  • 切换前置或后置摄像头。

    详情描述:该方法用于向网络发送或取消发送本地音频数据,不影响本地音频的采集状态,也不影响接收或播放远端音频流。

    调用时机:请在调用 NERTC.startPreviewNERTC.joinChannel 方法且开启摄像头之后调用此接口。

    since

    5.3.7 及以上。

    note
    • 该方法需要在相机启动后才可调用。
    example
    this.engine.switchCamera()
    

    Returns void

uploadSdkInfo

  • uploadSdkInfo(): void
  • 上传 SDK 信息。

    详情描述:上传的信息包括 log 和 Audio dump 等文件。

    调用时机:只能在加入房间后调用。

    since

    5.3.7 及以上。

    example
     this.engine.uploadSdkInfo();
    

    Returns void