Hierarchy

  • Client

Index

Methods

destroy

  • destroy(onSuccess: () => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 销毁客户端对象。

    Parameters

    • onSuccess: () => void

      方法调用成功时执行的回调函数。

        • (): void
        • Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

init

  • init(appId: string, onSuccess: () => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 初始化客户端对象。

    Parameters

    • appId: string

      你的小程序项目的 App ID。

    • onSuccess: () => void

      方法调用成功时执行的回调函数。无返回值。

        • (): void
        • Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

join

  • join(channelKey: string, channel: string, uid: number, onSuccess: (uid: number) => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 加入频道。

    Parameters

    • channelKey: string

      在 app 服务器端生成的用于鉴权的 Token:

    • channel: string

      频道名,能标识直播频道的字符串。

    • uid: number

      指定用户的 ID。32 位无符号整数。建议设置范围:1 到 (2^32-1),并保证唯一性。

    • onSuccess: (uid: number) => void

      方法调用成功时执行的回调函数。返回值为用户 ID。

        • (uid: number): void
        • Parameters

          • uid: number

          Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

leave

  • leave(onSuccess: () => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 退出频道。

    Parameters

    • onSuccess: () => void

      方法调用成功时执行的回调函数。无返回值。

        • (): void
        • Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

mute

  • mute(uid: number, target: string, onSuccess: () => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 停止接收远端用户的音视频流。

    Parameters

    • uid: number

      远端用户的 ID。

    • target: string

      选择停止接收哪一种流,有三种选择:

      • audio:本地用户发送的音频流,即声音。
      • video:本地用户发送的视频流,即视频画面。
      • all:本地用户发送的音视频流,即声音和视频画面。
    • onSuccess: () => void

      方法调用成功时执行的回调函数。无返回值。

        • (): void
        • Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

muteLocal

  • muteLocal(target: string, onSuccess: () => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 停止发送本地用户的音视频流。

    Parameters

    • target: string

      选择停止发送哪一种流,有三种选择:

      • audio:本地用户发送的音频流,即声音。
      • video:本地用户发送的视频流,即视频画面。
      • all:本地用户发送的音视频流,即声音和视频画面。
    • onSuccess: () => void

      方法调用成功时执行的回调函数。无返回值。

        • (): void
        • Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

off

  • off(event: string): void
  • 取消监听流事件。

    Parameters

    • event: string

      想要取消监听的流事件。

    Returns void

on

  • on(event: "error", callback: (evt: { code: number; reason: string }) => void): void
  • on(event: "stream-added", callback: (evt: { uid: number }) => void): void
  • on(event: "stream-removed", callback: (evt: { uid: number }) => void): void
  • on(event: "update-url", callback: (evt: { uid: number; url: string }) => void): void
  • on(event: "video-rotation", callback: (evt: { rotation: number; uid: number }) => void): void
  • on(event: "mute-audio", callback: (evt: { uid: number }) => void): void
  • on(event: "mute-video", callback: (evt: { uid: number }) => void): void
  • on(event: "channel-media-relay-event", callback: (evt: { code: number }) => void): void
  • on(event: "channel-media-relay-state", callback: (evt: { code: number; state: number }) => void): void
  • 通知应用程序发生错误。 该回调中会包含详细的错误码和错误信息。

    Parameters

    • event: "error"
    • callback: (evt: { code: number; reason: string }) => void
        • (evt: { code: number; reason: string }): void
        • Parameters

          • evt: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

  • 通知应用程序已添加远端音视频流。 该回调中会包含已添加的远端用户 ID。

    Parameters

    • event: "stream-added"
    • callback: (evt: { uid: number }) => void
        • (evt: { uid: number }): void
        • Parameters

          • evt: { uid: number }
            • uid: number

          Returns void

    Returns void

  • 通知应用程序已删除远端音视频流。 该回调中会包含已删除的远端用户 ID。

    Parameters

    • event: "stream-removed"
    • callback: (evt: { uid: number }) => void
        • (evt: { uid: number }): void
        • Parameters

          • evt: { uid: number }
            • uid: number

          Returns void

    Returns void

  • 通知应用程序已更新 Url 地址。 该回调中会包含远端用户的 ID 和更新后的拉流地址。

    Parameters

    • event: "update-url"
    • callback: (evt: { uid: number; url: string }) => void
        • (evt: { uid: number; url: string }): void
        • Parameters

          • evt: { uid: number; url: string }
            • uid: number
            • url: string

          Returns void

    Returns void

  • 通知应用程序远端视频已旋转。 该回调中会包含视频的旋转信息以及远端用户的 ID。

    Parameters

    • event: "video-rotation"
    • callback: (evt: { rotation: number; uid: number }) => void
        • (evt: { rotation: number; uid: number }): void
        • Parameters

          • evt: { rotation: number; uid: number }
            • rotation: number
            • uid: number

          Returns void

    Returns void

  • 通知应用程序远端用户已停止发送音频流。 该回调中会包含停止发送音频流的用户 ID。

    Parameters

    • event: "mute-audio"
    • callback: (evt: { uid: number }) => void
        • (evt: { uid: number }): void
        • Parameters

          • evt: { uid: number }
            • uid: number

          Returns void

    Returns void

  • 通知应用程序远端用户已停止发送视频流。 该回调中会包含停止发送视频流的用户 ID。

    Parameters

    • event: "mute-video"
    • callback: (evt: { uid: number }) => void
        • (evt: { uid: number }): void
        • Parameters

          • evt: { uid: number }
            • uid: number

          Returns void

    Returns void

  • 跨频道媒体流转发事件回调。

    该回调报告跨频道媒体流转发过程中发生的事件。

    Parameters

    • event: "channel-media-relay-event"
    • callback: (evt: { code: number }) => void
        • (evt: { code: number }): void
        • Parameters

          • evt: { code: number }
            • code: number

              事件码

              • 0: 网络中断导致用户与服务器连接断开。
              • 1: 用户与服务器建立连接。
              • 2: 用户已加入源频道。
              • 3: 用户已加入目标频道。
              • 4: SDK 开始向目标频道发送数据包。
              • 5: 服务器收到了目标频道发送的视频流。
              • 6: 服务器收到了目标频道发送的音频流。
              • 7: 目标频道已更新。

          Returns void

    Returns void

  • 跨频道媒体流转发状态回调。

    当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。

    Parameters

    • event: "channel-media-relay-state"
    • callback: (evt: { code: number; state: number }) => void
        • (evt: { code: number; state: number }): void
        • Parameters

          • evt: { code: number; state: number }
            • code: number

              跨频道媒体流转发出错的错误码:

              • 0: 一切正常。
              • 1: 服务器回应出错。
              • 2: 服务器无回应。
              • 3: SDK 无法获取服务,可能是因为服务器资源有限导致。
              • 4: 发起跨频道转发媒体流请求失败。
              • 5: 接受跨频道转发媒体流请求失败。
              • 6: 服务器接收跨频道转发媒体流失败。
              • 7: 服务器发送跨频道转发媒体流失败。
              • 8: SDK 因网络质量不佳与服务器断开,并且重连失败时抛出这个错。此时 SDK 会重置跨频道媒体流转发的相关状态,可以尝试调用 startChannelMediaRelay 重新进行跨频道媒体流转发。
              • 9: 服务器内部出错。
              • 10: 源频道的 Token 已过期。
              • 11: 目标频道的 Token 已过期。
              • 12: 已经开始跨频道媒体流转发。该错误一般是因为重复调用 startChannelMediaRelay,或者在调用 stopChannelMediaRelay 未成功时就调用了 startChannelMediaRelay
              • 13: 尚未开始跨频道媒体流转发。该错误一般是因为调用 startChannelMediaRelay 还未成功时就调用了 updateChannelMediaRelay
            • state: number

              状态码

              • 0: SDK 正在初始化。
              • 1: SDK 尝试跨频道。
              • 2: 源频道主播成功加入目标频道。
              • 3: 发生异常,详见 code 中提示的错误信息。发生异常后,SDK 会重置跨频道媒体流转发的相关状态,你需要调用 startChannelMediaRelay 重新开始跨频道媒体流转发。

          Returns void

    Returns void

publish

  • publish(onSuccess: (url: string) => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 发布本地音视频流。

    该方法将本地音视频流发布到 SD-RTN。互动直播中,调用该 API 的用户即默认为主播。

    Parameters

    • onSuccess: (url: string) => void

      方法调用成功时执行的回调函数。返回值为音视频流的推流地址。

        • (url: string): void
        • Parameters

          • url: string

          Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

rejoin

  • rejoin(channelKey: string, channel: string, uid: number, uids: number, onSuccess: (uid: number) => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 重新加入频道。

    该方法让用户重新加入 AgoraRTC 频道。如果你的小程序中有切后台的场景需求,请确保使用该方法做好重连机制。

    Parameters

    • channelKey: string

      在 app 服务器端生成的用于鉴权的 Token:

    • channel: string

      频道名,能标识直播频道的字符串。

    • uid: number

      指定用户的 ID。32 位无符号整数。建议设置范围:1 到 (2^32-1),并保证唯一性。

    • uids: number

      频道内已有用户的用户 ID 列表。

    • onSuccess: (uid: number) => void

      方法调用成功时执行的回调函数。返回值为用户 ID。

        • (uid: number): void
        • Parameters

          • uid: number

          Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

setRole

  • setRole(role: string, onSuccess: () => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 设置用户角色。

    该方法设置用户角色。小程序端的用户角色默认为主播,因此在同时满足以下条件的使用场景中,必须调用该接口将小程序端的用户角色设置为观众再进入频道。

    • 小程序 SDK 与 Native SDK 互通
    • Native 端频道模式为直播模式
    • 小程序作为观众端加入频道

    注:如果在主播已 publish 的状态下调用该方法将用户角色设置为 audience,会导致之前的推流地址无效。

    Parameters

    • role: string

      用户角色。选择如下一种角色:

      • broadcaster:(默认) 将用户角色设置为主播。主播可以调用 publishunpublish 方法。
      • audience:将用户角色设置为观众。观众不能调用 publishunpublish 方法。
    • onSuccess: () => void

      方法调用成功时执行的回调函数。无返回值。

        • (): void
        • Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

startChannelMediaRelay

  • 开始跨频道媒体流转发。

    该方法可用于实现跨频道媒体流转发。

    调用该方法后,SDK 会触发以下回调:

    • Client.on("channel-media-relay-state"),报告当前的跨频道媒体流转发状态和错误码。
      • 如果转发成功,该回调中 state 为 2,code 为 0。
      • 如果转发出现异常,该回调中 state 为 3,code 为错误码。你可以尝试再次调用本方法。
    • Client.on("channel-media-relay-event"),报告跨频道媒体流转发相关的事件。
      • 如果转发成功,该回调中 code 为 4,表示 SDK 开始向目标频道发送数据包。

    Note

    • 跨频道媒体流转发功能需要提交工单联系技术支持开通。
    • 该功能不支持 String 型 UID。
    • 请在成功加入频道后调用该方法。
    • 直播场景下,只有主播可以调用该方法。
    • 成功调用该方法后,若你想再次调用该方法,必须先调用 stopChannelMediaRelay 方法退出当前的转发状态。
    example

    示例代码

    client.startChannelMediaRelay(channelMediaConfig, function(e) {
      if(e) {
        utils.notification(`startChannelMediaRelay failed: ${JSON.stringify(e)}`);
      } else {
        utils.notification(`startChannelMediaRelay success`);
      }
    });

    Parameters

    Returns void

stopChannelMediaRelay

  • 停止跨频道媒体流转发。

    一旦停止转发,用户会退出所有的目标频道。

    调用该方法会触发 Client.on("channel-media-relay-state") 回调。

    • 如果成功停止跨频道媒体流转发,该回调中 state 为 0。
    • 如果未成功停止跨频道媒体流转发,该回调中 state 为 3,code 错误码可能为 2 或 8,一般是在网络较差的情况下,退出的消息发送不成功导致的。你可以调用 Client.leave 离开频道来停止跨频道媒体流转发。
    example

    示例代码

    stopChannelMediaRelay: function() {
      client.stopChannelMediaRelay(function(e) {
        if(e) {
          utils.notification(`stopChannelMediaRelay failed: ${JSON.stringify(e)}`);
        } else {
          utils.notification(`stopChannelMediaRelay success`);
        }
      });
    }

    Parameters

    Returns void

subscribe

  • subscribe(uid: number, onSuccess: (url: string) => void, onFailure: (err: any) => void): void
  • 订阅远端音视频流。

    该方法从 SD-RTN 订阅并接收远端音视频流。

    Parameters

    • uid: number

      要订阅的远端用户 ID。

    • onSuccess: (url: string) => void

      方法调用成功时执行的回调函数。返回值为音视频的拉流地址。

        • (url: string): void
        • Parameters

          • url: string

          Returns void

    • onFailure: (err: any) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

unmute

  • unmute(uid: number, target: string, onSuccess: () => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 恢复接收远端用户的音视频流。

    Parameters

    • uid: number

      远端用户的 ID。

    • target: string

      选择停止接收哪一种流,有三种选择:

      • audio:本地用户发送的音频流,即声音。
      • video:本地用户发送的视频流,即视频画面。
      • all:本地用户发送的音视频流,即声音和视频画面。
    • onSuccess: () => void

      方法调用成功时执行的回调函数。无返回值。

        • (): void
        • Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

unmuteLocal

  • unmuteLocal(target: string, onSuccess: () => void, onFailure: (err: { code: number; reason: string }) => void): void
  • 恢复发送本地用户的音视频流。

    Parameters

    • target: string

      选择恢复发送哪一种流,有三种选择:

      • audio:本地用户发送的音频流,即声音。
      • video:本地用户发送的视频流,即视频画面。
      • all:本地用户发送的音视频流,即声音和视频画面。
    • onSuccess: () => void

      方法调用成功时执行的回调函数。无返回值。

        • (): void
        • Returns void

    • onFailure: (err: { code: number; reason: string }) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: { code: number; reason: string }): void
        • Parameters

          • err: { code: number; reason: string }
            • code: number
            • reason: string

          Returns void

    Returns void

unpublish

  • unpublish(onSuccess: () => void, onFailure: (err: any) => void): void
  • 停止发布本地音视频流。

    Parameters

    • onSuccess: () => void

      方法调用成功时执行的回调函数。无返回值。

        • (): void
        • Returns void

    • onFailure: (err: any) => void

      方法调用失败时执行的回调函数。返回值为错误码和错误信息。

        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

unsubscribe

  • unsubscribe(uid: number, onSuccess: () => void, onFailure: (err: any) => void): void
  • 停止订阅远端音视频流。

    该方法停止从 SD-RTN 订阅并接收远端音视频流。

    Parameters

    • uid: number

      要停止订阅的远端用户 ID。

    • onSuccess: () => void

      方法调用成功时执行的回调函数。无返回值。

        • (): void
        • Returns void

    • onFailure: (err: any) => void

      方法调用成功时执行的回调函数。返回值为错误码和错误信息。

        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

updateChannelMediaRelay

  • 更新媒体流转发的目标频道。

    成功开始跨频道转发媒体流后,如果你希望添加或删除媒体流转发的目标频道,可以调用该方法。

    调用该方法后,SDK 会触发 Client.on("channel-media-relay-event") 回调。

    • 如果更新成功,回调中 code 为 7。
    • 如果更新失败,回调中 code 为 8,同时还会触发 Client.on("channel-media-relay-state") 回调,其中 state 为 3。出错后跨频道媒体流转发状态会被重置,你需要调用 startChannelMediaRelay 重新开始跨频道媒体流转发。

    Note

    • 请在 startChannelMediaRelay 后调用该方法,更新媒体流转发的频道。
    • 跨频道媒体流转发最多支持 4 个目标频道。
    example

    示例代码

    client.updateChannelMediaRelay(channelMediaConfig, function(e) {
      if(e) {
        utils.notification(`updateChannelMediaRelay failed: ${JSON.stringify(e)}`);
      } else {
        utils.notification(`updateChannelMediaRelay success`);
      }
    });

    Parameters

    Returns void