Options
All
  • Public
  • Public/Protected
  • All
Menu

Namespace NERTC

Index

Variables

Const BUILD

BUILD: string

Const LIVE_STREAM_AUDIO_CODEC_PROFILE

LIVE_STREAM_AUDIO_CODEC_PROFILE: { HE_AAC: number; LC_AAC: number }

Type declaration

  • HE_AAC: number
  • LC_AAC: number

Const LIVE_STREAM_AUDIO_SAMPLE_RATE

LIVE_STREAM_AUDIO_SAMPLE_RATE: { SAMPLE_RATE_32000: number; SAMPLE_RATE_44100: number; SAMPLE_RATE_48000: number }

互动直播的音频采样率。

Type declaration

  • SAMPLE_RATE_32000: number

    32000 Hz

  • SAMPLE_RATE_44100: number

    44100 Hz

  • SAMPLE_RATE_48000: number

    48000 Hz

Const VERSION

VERSION: string

Const VIDEO_FRAME_RATE

VIDEO_FRAME_RATE: { CHAT_VIDEO_FRAME_RATE_10: number; CHAT_VIDEO_FRAME_RATE_15: number; CHAT_VIDEO_FRAME_RATE_20: number; CHAT_VIDEO_FRAME_RATE_25: number; CHAT_VIDEO_FRAME_RATE_5: number; CHAT_VIDEO_FRAME_RATE_NORMAL: number }

视频帧率设置

Type declaration

  • CHAT_VIDEO_FRAME_RATE_10: number

    视频通话帧率 最大取每秒10帧

  • CHAT_VIDEO_FRAME_RATE_15: number

    视频通话帧率 最大取每秒15帧

  • CHAT_VIDEO_FRAME_RATE_20: number

    视频通话帧率 最大取每秒20帧

  • CHAT_VIDEO_FRAME_RATE_25: number

    视频通话帧率 最大取每秒25帧

  • CHAT_VIDEO_FRAME_RATE_5: number

    视频通话帧率 最大取每秒5帧

  • CHAT_VIDEO_FRAME_RATE_NORMAL: number

    视频通话帧率默认值 最大取每秒15帧

Const VIDEO_QUALITY

VIDEO_QUALITY: { VIDEO_QUALITY_1080p: number; VIDEO_QUALITY_180p: number; VIDEO_QUALITY_480p: number; VIDEO_QUALITY_720p: number }

分辨率设置。

Type declaration

  • VIDEO_QUALITY_1080p: number

    1080P

  • VIDEO_QUALITY_180p: number

    180P

  • VIDEO_QUALITY_480p: number

    480P

  • VIDEO_QUALITY_720p: number

    720P

Functions

checkSystemRequirements

  • checkSystemRequirements(): Boolean
  • 检查 NERTC Web SDK 对正在使用的浏览器的适配情况。

    note
    • 请在创建音视频对象(createClient)之前调用该方法。
    • SDK 和浏览器的适配情况与浏览器类型和版本有关,不同的浏览器版本可能会返回不一样的适配结果。

    Returns Boolean

    • true: SDK 与当前使用的浏览器适配
    • false: SDK 与当前使用的浏览器不适配

createClient

  • createClient(options: { appkey: string; debug?: boolean }): Client
  • 创建客户端。

    该方法用于创建客户端,每次通话前调用一次即可。

    example
    <!DOCTYPE html>
      <html>
        <body>
          <div id="localDiv" style="height: 500px;"></div>
          <div id="remoteDiv" style="height: 500px;"></div>
          <script src="<SDK地址>"></script>
          <script>
    const main = async ()=>{
    let rtc = {};
    // 1. 创建client
    rtc.client = NERTC.createClient({appkey: "<您的appkey>", debug: true});
    // 2. 绑定订阅事件
    rtc.client.on('stream-added', (evt)=>{
      rtc.client.subscribe(evt.stream);
    })
    rtc.client.on('stream-subscribed', (evt)=>{
      evt.stream.play(document.getElementById('remoteDiv'));
    });
    // 3. 加入频道
    await rtc.client.join({
      channelName: 'channel163',
      uid: 123,
      token: '<您的token>', // 如关闭了安全模式,则不需要该参数。
    });
    // 4. 创建localStream
    rtc.localStream = NERTC.createStream({
      video: true,
      audio: true,
      client: rtc.client,
      uid: 123
    });
    await rtc.localStream.init();
    // 5. 设置本地播放方式
    rtc.localStream.setLocalRenderMode({
      width: 640,
      height: 480
    })
    rtc.localStream.play(document.getElementById('localDiv'))
    // 5. 发布localStream
    rtc.client.publish(rtc.localStream);
    }
    main()
      </script>
      </body>
    </html>
    

    Parameters

    • options: { appkey: string; debug?: boolean }

      配置参数。

      • appkey: string

        应用的 AppKey。可从云信后台获取。

      • Optional debug?: boolean

        是否开启 debug 模式。

        • debug 为true时,浏览器会打印所有日志,即日志级别为DEBUG
        • debug为false时,浏览器会打印警告及错误日志,即日志级别为WARNING
        • 默认的日志级别为INFO。要关闭所有日志,应调用NERTC.Logger.setLogLevel(NERTC.Logger.NONE)。见NERTC.Logger.setLogLevel

    Returns Client

createStream

  • 该方法创建并返回音视频流对象。

    note

    自 V4.1.0 版本起,摄像头与屏幕共享的视频流可以同时发送,其中屏幕共享流会以辅流形式发送。

    Parameters

    Returns Stream | { code: number; desc: string; name: string }

destroy

  • destroy(client?: Client): void
  • 销毁 Client 对象。

    Parameters

    • Optional client: Client

      指定要销毁的 Client 实例,不传递则销毁最初使用用 createClient 创建的 Client 实例(一般多实例场景使用)。

    Returns void

getCameras

  • 获取可用的视频输入设备。

    //接口使用示例
    NERTC.getCameras().then(data => {
      data.forEach(item=>{
        console.log('video label: ', item.label, 'deviceId: ', item.deviceId)
      })
    })   
    

    Returns Promise<DeviceInfo[]>

getDevices

  • 该方法枚举可用的媒体输入/输出设备,比如麦克风、摄像头、耳机等。

    出于安全性考虑,各平台对枚举设备接口有不同的权限控制策略。例如:

    1. Safari浏览器只有在当前页面执行一次getUserMedia(也就是Stream.init)之后才能够枚举设备。
    2. Chrome浏览器曾经在当前页面执行过getUserMedia即可枚举设备。
    example
    // 接口使用示例
    NERTC.getDevices().then(data => {
      const {audioIn, audioOut, video} = data
      audioIn.forEach(item=>{
        console.log('mic label: ', item.label, 'deviceId: ', item.deviceId)
      })
      video.forEach(item=>{
        console.log('video label: ', item.label, 'deviceId: ', item.deviceId)
      })
      //...
    })
    

    Returns Promise<{ audioIn: DeviceInfo[]; audioOut: DeviceInfo[]; video: DeviceInfo[] }>

    • video:视频

getMicrophones

  • 获取可用的音频输入设备。

    Returns Promise<DeviceInfo[]>

getSpeakers

  • 获取可用的音频输出设备。

    Returns Promise<DeviceInfo[]>

getSupportedCodec

  • getSupportedCodec(): Promise<{ audio: ["OPUS"]; video: ["H264", "VP8"] }>
  • 检查 NERTC Web SDK 和当前浏览器同时支持的编解码格式。

    NERTC Web SDK 2.0 视频编解码支持 VP8、H.264、H.265、NEVC 格式,音频支持 OPUS 格式。 您可以调用此接口检查 NERTC Web SDK 与当前浏览器同时支持的编解码格式,以免因编解码能力不匹配导致通话过程中出现音视频播放问题。

    note
    • 请在初始化之后调用该方法。
    • 该方法支持部分浏览器,列表请查看Web SDK 支持的浏览器类型
    • 返回的音视频编码为浏览器通过 SDP 声明的的编码类型,为参考值。
    • 目前部分安卓手机 H.264 与其他平台 H.264 存在无法互通或单通问题,对于这部分机型推荐使用 VP8 编码格式。

    Returns Promise<{ audio: ["OPUS"]; video: ["H264", "VP8"] }>

    NERTC Web SDK 和当前浏览器同时支持的编解码格式。

    调用该方法会返回一个 Promise 对象,在 .then(data(result){}) 回调中,data 包含以下属性:

    • video: 支持的视频编解码格式,数组类型。返回值包括 "H264"、"VP8"。
    • audio: 支持的音频编解码格式,数组类型。返回值包括 "OPUS"。
    //接口使用示例
    NERTC.getSupportedCodec().then(data => {
      data.forEach(item=>{
        console.log(`Supported video codec: ${data.video.join(",")}`);
        console.log(`Supported audio codec: ${data.audio.join(",")}`);
      })
    })