VRTC

VRTC 是 Byte Web SDK 中所有可调用方法的入口。

VRTC 可用于创建客户端和音视频流对象,以及一些相关操作。

成员属性

类型 名称
string VERSION

成员函数

返回 名称
boolean checkSystemRequirements
无 getDevices
client createClient
stream createStream

成员组件

变量说明

VERSION

VERSION: string

SDK 版本号,用于版本管理

函数说明

checkSystemRequirements

checkSystemRequirements(): boolean

检查 Web SDK 对正在使用的浏览器的适配情况

返回值

true: Web SDK 与当前使用的浏览器适配

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

checkVideoPermission

checkVideoPermission(onSuccess: () => void, onFailure: () => void): void

检测是否有摄像头权限

参数

参数名 类型 说明 必填 默认值
onSuccess function 成功回调 是 () =>{}
onFailure function 失败回调 否 () =>{}

checkAudioPermission

checkAudioPermission(onSuccess: () => void, onFailure: () => void): void

检测是否有麦克风权限

参数

参数名 类型 说明 必填 默认值
onSuccess function 成功回调 是 () =>{}
onFailure function 失败回调 否 () =>{}

getDevices

getDevices(onSuccess: (devices: [DeviceInstance]) => void, onFailure?: (err: Error) => void): void

获取可用的媒体输入/输出设备,比如麦克风、摄像头、耳机等

参数

参数名 类型 说明 必填 默认值
onSuccess function 成功回调 是
onFailure function 失败回调 否 () =>{}

DeviceInstance详情

属性名 类型 说明
deviceId string 所代表设备的标识符,每个设备唯一
groupId string 所代表设备的组标识符。如果两个设备属于同一物理设备,则它们具有相同的组标识符
kind string:
  • audioinput
  • audiooutput
  • videoinput
  • 设备的种类
    label string 描述此设备的标签

    createClient

    createClient(mode: string, role: string, iceUrl: string): client
    

    创建客户端

    参数

    参数名 类型 说明 是否必需 默认值
    mode string 通讯模式。计划删除,不建议继续使用。 否 live
    role string 用户模式 否 live
    iceUrl string 工作环境 否 https://rtc-access.bytedance.com/dispatch/v1/AccessInfo?Action=GetAccessInfo

    返回值

    client

    createStream

    createStream(options: StreamOption): stream
    

    创建音视频流对象

    参数

    参数名 类型 说明 必填 默认值
    options object 流参数 是

    StreamOption设置

    属性名 类型 说明 必填 默认值
    audio boolean 是否开启音频 是
    video boolean 是否开启视频 是
    data boolean 是否传递数据 否 false
    screen boolean 是否有屏幕分享 否 false
    mediaStream mediaStream 媒体流 否
    microphoneId string 麦克风设备id 否
    cameraId string 摄像头设备id 否

    返回值

    stream

    注意

    1.mediaStream 由浏览器原生 API 实现。 2.microphoneId 和 cameraId 可以从 getDevices 中获取。

    Client

    Client 接口提供音视频通话的核心功能,例如加入频道、发布和订阅音视频流等。

    你可以通过 createClient 来创建 client 对象。一个 client 对象代表一个本地客户端。

    成员函数

    返回 名称
    无 init
    string join
    promise leave
    promise publish
    promise unpublish
    promise subscribe
    promise unsubscribe
    无 on
    无 off
    symbol getConnectionState
    无 getLocalVideoStats
    无 getLocalAudioStats
    无 getRemoteAudioStats
    无 getRemoteVideoStats
    promise renewToken
    无 setLiveTranscoding
    无 startLiveStreaming
    无 stopLiveStreaming
    promise sendCustomMessage
    promise sendMessageToUser
    无 setBusinessId
    string getBusinessId

    函数说明

    init

    init(appId: string, onSuccess?: () => void, onFailure?: (err: Error) => void): void
    

    client 初始化,核心功能是与信令服务器建立 websocket 长链接,是所有后续操作的前提

    参数

    参数名 类型 说明 必填 默认值
    appId string 每个项目自带的appId 是
    onSuccess function 成功回调 否 () =>{}
    onFailure function 失败回调 否 () =>{}

    注意

    1.后续操作都需要以此函数调用为前提。

    join

    join(token: string, roomId: string, userId: string, onSuccess?: () => void, onFailure?: (err: Error) => void): string
    

    加入房间

    参数

    参数名 类型 说明 必填 默认值
    token string 进入房间时用于校验的验证 是
    roomId string 需要进入的房间号 是
    userId string 本地用户的id 是
    onSuccess function 成功回调 否 () =>{}
    onFailure function 失败回调 否 () =>{}

    返回值

    本地用户的userId

    注意

    1.同一个 client 只可以加入一个房间。

    2.token 与 appid 息息相关,是每个项目各自有生成方式。

    3.与 leave 为逆操作。

    4.加入大班小课功能后,可以同时创建两个 client 分别进入不同房间,但是只可以在一个房间内推流。

    leave

    leave(onSuccess?: () => void, onFailure?: (err: Error) => void): promise
    

    离开当前房间

    参数

    参数名 类型 说明 必填 默认值
    onSuccess function 成功回调 否 () =>{}
    onFailure function 失败回调 否 () =>{}

    返回值

    promise

    注意

    1.与join为逆操作。

    publish

    publish(byteStream: byteStream, onFailure?: (err: Error) => void): promise
    

    在房间内推流

    参数

    参数名 类型 说明 必填 默认值
    byteStream byteStream stream流 是
    onFailure function 失败回调 否 () =>{}

    返回值

    promise

    注意

    1.byteStream 需要 VRTC.createStream 来创建。

    2.与 unpublish 为逆操作。

    回调

    成功推流会触发stream-published事件

    unpublish

    unpublish(byteStream: byteStream, onFailure?: (err: Error) => void): promise
    

    停止推流

    参数

    参数名 类型 说明 必填 默认值
    byteStream byteStream stream流 是
    onFailure function 失败回调 否 () =>{}

    返回值

    promise

    注意

    1.与 publish 为逆操作。

    回调

    成功之后远端会受到stream-removed事件

    subscribe

    subscribe(byteStream: byteStream, options?: SubscribeOption, onFailure?: (err: Error) => void): promise
    

    订阅远端流

    参数

    参数名 类型 说明 必填 默认值
    byteStream byteStream stream流 是
    options SubscribeOption 订阅配置 否 {}
    onFailure function 失败回调 否 () =>{}

    SubscribeOption配置

    参数名 类型 说明 必填 默认值
    video boolean 是否订阅视频 否 true
    audio boolean 是否订阅音频 否 true
    bigStream boolean 订阅大流还是小流(开启了双流推送时) 否 true

    返回值

    promise

    注意

    1.与 unsubscribe 为逆操作。

    2.建议配合stream-added事件使用。

    3.SubscribeOption 中 audio 与 video 不可以同时设置为 false 。

    回调

    成功订阅会触发stream-subscribed事件

    unsubscribe

    unsubscribe(byteStream: byteStream, onFailure?: (err: Error) => void): promise
    

    停止订阅

    参数

    参数名 类型 说明 必填 默认值
    byteStream byteStream stream流 是
    onFailure function 失败回调 否 () =>{}

    返回值

    promise

    注意

    1.与 subscribe 为逆操作。

    on

    on(event: string, callback: (event: OnerEvent) => void): void
    

    监听事件

    参数

    参数名 类型 说明 必填 默认值
    event string 需要监听的事件 是
    callback function 事件触发时调用的回调 是

    OnerEvent参数

    参数名 类型 说明 必定存在
    type string 事件类型 是
    code string 事件代码 否
    message string 事件信息 否
    stream string 事件主体流 否
    uid string 事件主体uid 否

    注意

    1.与 off 为逆操作。

    off

    off(event: string, callback: (event: OnerEvent) => void): void
    

    取消监听事件

    参数

    参数名 类型 说明 必填 默认值
    event string 需要取消监听的事件 是
    callback function 需要取消调用的回调 是

    OnerEvent参数

    参数名 类型 说明 必定存在
    type string 事件类型 是
    code string 事件代码 否
    message string 事件信息 否
    stream string 事件主体流 否
    uid string 事件主体uid 否

    注意

    1.与 on 为逆操作。

    getConnectionState

    getConnectionState(): symbol
    

    获取连接状态

    返回值

    1.调用join之后为CONNECTING。

    2.进入房间成功后为CONNECTED。

    3.调用leave之后为DISCONNECTING。

    4.离开房间成功后为DISCONNECTED。

    getLocalVideoStats

    getLocalVideoStats(callback: ({ uid: LocalVideoStats }) => void): void
    

    获取本地流视频统计

    参数

    参数名 类型 说明 必填 默认值
    callback function 获取统计后触发的回调 是

    LocalVideoStats统计详情

    属性名 类型 说明
    CaptureFrameRate number 捕获视频帧率,单位是 fps
    CaptureResolutionHeight number 捕获视频高度
    CaptureResolutionWidth number 捕获视频宽度
    EncodeDelay number 从采集到编码的延迟,单位为 ms
    MuteState boolean 视频是否开启
    SendBitrate number 发送视频码率,单位为 kbps
    SendFrameRate number 发送视频帧率,单位是 fps
    SendResolutionWidth number 发送视频宽度
    SendResolutionHeight number 发送视频高度
    TotalFreezeTime number 总卡顿时长,单位是 s
    TargetSendBitrate number 目标发送视频码率,单位是 kbps
    TotalDuration number 总视频时长,单位是 s

    getLocalAudioStats

    getLocalAudioStats(callback: ({ uid: LocalAudioStats }) => void): void
    

    获取本地流音频统计

    参数

    参数名 类型 说明 必填 默认值
    callback function 获取统计后触发的回调 是

    LocalAudioStats统计详情

    属性名 类型 说明
    CodecType string: 'Opus' | 'AAC' 音频编码格式
    MuteState boolean 音频是否开启
    RecordingLevel number 录制音量
    SendBitrate number 发送音频码率,单位是 kbps

    getRemoteAudioStats

    getRemoteAudioStats(callback: ({ uid: RemoteAudioStats }) => void): void
    

    获取远端流音频统计

    参数

    参数名 类型 说明 必填 默认值
    callback function 获取统计后触发的回调 是

    RemoteAudioStats统计详情

    属性名 类型 说明
    End2EndDelay number 发送端到接收端延迟,单位为 ms
    TransportDelay number 传输延迟,单位为 ms
    RecvLevel number 接收音量
    RecvBitrate number 接收码率,单位为 kbps
    CodecType string: 'Opus' | 'AAC' 音频编码格式
    MuteState Boolean 音频是否开启
    TotalFreezeTime number 总卡顿时间,单位是 s
    TotalPlayDuration number 总播放时长,单位是 s

    getRemoteVideoStats

    getRemoteVideoStats(callback: ({ uid: RemoteVideoStats }) => void): void
    

    获取远端流视频统计

    参数

    参数名 类型 说明 必填 默认值
    callback function 获取统计后触发的回调 是

    RemoteVideoStats统计详情

    属性名 类型 说明
    End2EndDelay number 发送端到接收端延迟,单位为 ms
    TransportDelay number 传输延迟,单位为 ms
    RecvBitrate number 接收视频码率,单位为 kbps
    RecvResolutionWidth number 接收视频宽度
    RecvResolutionHeight number 接收视频高度
    RenderResolutionWidth number 渲染视频宽度
    RenderResolutionHeight number 渲染视频高度
    RenderFrameRate number 渲染视频帧率,单位是 fps
    MuteState boolean 是否开启视频
    TotalFreezeTime number 总卡顿时间,单位是 s
    TotalPlayDuration number 总播放时长,单位是 s

    renewToken

    renewToken(token: string, onSuccess?: () => void, onFailure?: (err: Error) => void): promise
    

    更新校验 token

    参数

    参数名 类型 说明 必填 默认值
    token string 新的校验token 是
    onSuccess function 成功回调 否 () =>{}
    onFailure function 失败回调 否 () =>{}

    返回值

    promise

    注意

    1.进入房间时传入的校验 token 有过期时间,一旦触发 token 过期,会收到token-request事件,请在收到此事件后重新生成 token 然后调用此函数。

    setLiveTranscoding

    setLiveTranscoding(liveTranscoding: object): void
    

    设置直播推流转码

    参数

    参数名 类型 说明 必填 默认值
    liveTranscoding object 合流转推参数 是

    liveTranscoding属性设置

    属性名 类型 说明 必填 默认值
    audioBitrate number 音频码率 否 48
    audioChannels number: 1-5 声道数 否 1
    audioSampleRate number: 32000/44100/48000 音频采样率 否 44100
    backgroundColor number: 0x000000-0xffffff 背景色 否 0x000000
    height number 视频高度 否 360
    lowLatency boolean 是否使用低延时 否 false
    videoBitrate number 视频码率 否 400
    videoFramerate number: 1-30 视频帧率 否 15
    videoGop number 视频的 GOP 否 30
    width number 视频宽度 否 640
    transcodingUsers array 转码合图用户 是

    liveTranscoding设置示例

    var LiveTranscoding = {
      width: 640,
      height: 360,
      videoBitrate: 400,
      videoFramerate: 15,
      audioSampleRate: 48000,
      audioBitrate: 48,
      audioChannels: 1,
      videoGop: 30,
      transcodingUsers,
      backgroundColor: 0x000000
    };
    

    transcodingUsers设置

    属性名 类型 说明 必填 默认值
    alpha number: 0-1 透明度 是
    height number 视频帧高度 否 360
    uid string 用户uid 否
    width number 视频帧宽度 否 640
    x number 视频帧左上角的横轴位置 否 0
    y number 视频帧左上角的纵轴位置 否 0
    zOrder number 图层编号 否 0

    注意

    1.请在调用startLiveStreaming前调用此参数。

    startLiveStreaming

    startLiveStreaming(url: string, enableTranscoding: boolean, onSuccess: () => void, onFailure: (err: Error) => void): void
    

    开启转推直播,推流到cdn

    参数

    参数名 类型 说明 必填 默认值
    url string 直播推流的地址 是
    enableTranscoding boolean 是否启用直播转码 否 true
    onSuccess function 成功回调 否 () =>{}
    onFailure function 失败回调 否 () =>{}

    stopLiveStreaming

    stopLiveStreaming(onSuccess: () => void, onFailure: (err: Error) => void): void
    

    停止合流转推

    参数

    参数名 类型 说明 必填 默认值
    onSuccess function 成功回调 否 () =>{}
    onFailure function 失败回调 否 () =>{}

    sendCustomMessage

    sendCustomMessage(message: string|Object, onSuccess?: () => void, onFailure?: (err: Error) => void): promise
    

    用户发送消息,并透传房间内各客户端

    参数

    参数名 类型 说明 必填 默认值
    message string|Object 需要传递的消息 是
    onSuccess function 成功回调 否 () =>{}
    onFailure function 失败回调 否 () =>{}

    返回值

    promise

    sendMessageToUser

    sendMessageToUser(uid: string|Object, message: object): promise
    

    向指定用户发送消息

    参数

    参数名 类型 说明 必填 默认值
    uid string|Object 用户 ID 是
    message object 需要传递的消息 是

    返回值

    promise

    setBusinessId

    setBusinessId(id: string, onFailure?: (err: Error) => void): void
    

    设置业务id,一般用于区分相同项目中的不同业务线

    参数

    参数名 类型 说明 必填 默认值
    id string 业务id 是
    onFailure function 失败回调 否 ()=>{}

    getBusinessId

    getBusinessId(): string
    

    获取业务id

    返回值

    业务id

    Stream

    Stream 接口提供的方法用于定义音视频流对象的行为,例如流的播放控制、音视频的编码配置等。

    你可以通过 createStream创建 stream 对象。一个 stream 对象指通话中发布的本地音视频流或订阅的远端音视频流。

    成员函数

    返回 名称
    无 init
    无 play
    无 getMediaStream
    无 setVideoBitRate
    无 setVideoProfile
    无 setVideoEncoderConfiguration
    无 getStats
    无 stop
    无 close
    无 enableAudio
    无 enableVideo
    无 disableAudio
    无 disableVideo
    无 muteAudio
    无 muteVideo
    无 unmuteAudio
    无 unmuteVideo
    string getId
    boolean hasVideo
    boolean hasAudio
    无 replaceTrack
    number getAudioLevel
    无 startAudioMixing
    无 stopAudioMixing
    无 pauseAudioMixing
    无 resumeAudioMixing
    number getAudioMixingDuration
    number getAudioMixingCurrentPosition
    无 setAudioMixingPosition
    无 adjustAudioMixingVolume
    mediaStreamTrack getVideoTrack
    mediaStreamTrack getAudioTrack
    无 mirror

    函数说明

    init

    init(onSuccess?: () => void, onFailure?: (err: Error) => void): void
    

    流初始化

    参数

    参数名 类型 说明 必填 默认值
    onSuccess function 成功回调 否 () =>{}
    onFailure function 失败回调 否 () =>{}

    注意

    1.后续操作都需要以此函数调用为前提。

    play

    play(domID: string, option?: object, onFailure?: (err: Error) => void): void
    

    播放媒体流

    参数

    参数名 类型 说明 必填 默认值
    domID string html页面放置video标签的dom组件id 是
    option object 播放参数 否 {}
    onFailure function 失败回调 否 () =>{}

    option详情

    属性名 类型 说明 必填 默认值
    fit string:cover/contain video标签的style属性 否
    muted boolean 是否静音 否 false

    getMediaStream

    getMediaStream(): mediaStream
    

    获取媒体流

    返回值

    mediaStream

    setVideoBitRate

    setVideoBitRate(bitrate: array): void
    

    设置视频码率

    参数

    参数名 类型 说明 必填 默认值
    bitrate array:[min, max] 目标码率,单位是kbps 是

    注意

    1.码率设置会有一个缓步上升的过程,慢慢达到目标值。

    2.如果范围设置比较窄,实际效果并不很精确。

    3.请在 publish 之前调用此方法。

    setVideoProfile

    setVideoProfile(profile: string): void
    

    设置视频属性,设置本地流的视频编码属性。每个属性对应一套视频参数,如分辨率、帧率、码率等

    参数

    参数名 类型 说明 必填 默认值
    profile string 视频参数 是

    profile规格

    视频属性 分辨率(宽x高) 帧率(fps) 码率(Kbps) Chrome Firefox Safari
    120p_1 160 x 120 15 65 支持
    120p_3 120 x 120 15 50 支持
    180p_1 320 x 180 15 140 支持
    180p_3 180 x 180 15 100 支持
    180p_4 240 x 180 15 120 支持
    240p_1 320 x 240 15 200 支持
    240p_3 240 x 240 15 140 支持
    240p_4 424 x 240 15 220 支持
    360p_1 640 x 360 15 400 支持
    360p_3 360 x 360 15 260 支持
    360p_4 640 x 360 30 600 支持
    360p_6 360 x 360 30 400 支持
    360p_7 480 x 360 15 320 支持
    360p_8 480 x 360 30 490 支持
    360p_9 640 x 360 15 800 支持
    360p_10 640 x 360 24 800 支持
    360p_11 640 x 360 24 1000 支持
    480p_1 640 x 480 15 500 支持 支持 支持
    480p_2 640 x 480 30 1000 支持 支持 支持
    480p_3 480 x 480 15 400 支持 支持 支持
    480p_4 640 x 480 30 750 支持 支持 支持
    480p_6 480 x 480 30 600 支持 支持 支持
    480p_8 848 x 480 15 610 支持 支持 支持
    480p_9 848 x 480 30 930 支持 支持 支持
    480p_10 640 x 480 10 400 支持 支持 支持
    720p_1 1280 x 720 15 1130 支持 支持 支持
    720p_2 1280 x 720 30 2000 支持 支持 支持
    720p_3 1280 x 720 30 1710 支持 支持 支持
    720p_5 960 x 720 15 910 支持 支持 支持
    720p_6 960 x 720 30 1380 支持 支持 支持
    1080p_1 1920 x 1080 15 2080 支持 支持
    1080p_2 1920 x 1080 30 3000 支持 支持
    1080p_3 1920 x 1080 30 3150 支持 支持
    1080p_5 1920 x 1080 60 4780 支持 支持
    1440p_1 2560 x 1440 30 4850 支持 支持
    1440p_2 2560 x 1440 60 7350 支持 支持
    4K_1 3840 x 2160 30 8910 支持 支持
    4K_3 3840 x 2160 60 13500 支持 支持

    注意

    1.码率,帧率和分辨率设置会有一个缓步上升的过程,慢慢达到目标值。

    2.请在 publish 之前调用此方法。

    setVideoEncoderConfiguration

    setVideoEncoderConfiguration(option: object): void
    

    自定义视频编码配置,可以根据需要灵活设置本地流的视频分辨率、帧率和码率

    参数

    参数名 类型 说明 必填 默认值
    option object 自定义视频编码 是

    option详情

    属性名 类型 说明 必填 默认值
    resolution object 视频分辨率(宽高) 否
    frameRate object 视频帧率(最低,最高) 否
    bitrate object 视频码率(最低,最高,单位是kbps) 否

    option示例

    stream.setVideoEncoderConfiguration({
      // 视频分辨率
      resolution: {
        width: 640,
        height: 480
      },
      // 视频编码帧率。通常建议是 15 帧,不超过 30 帧
      frameRate: {
        min: 15,
        max: 30
      },
      // 码率。一般情况下推荐使用标准码率
      bitrate: {
        min: 1000,
        max: 5000
      }
    });
    

    注意

    1.码率,帧率和分辨率设置会有一个缓步上升的过程,慢慢达到目标值。

    2.请在 publish 之前调用此方法。

    getStats

    getStats(callback: (StreamStats: StreamStats) => void): void;
    

    获取流统计

    参数

    参数名 类型 说明 必填 默认值
    callback function 获取到统计触发的回调 是

    StreamStats详情

    属性名 类型 说明
    accessDelay number 接入 SD-RTN 网络的延迟,单位为 ms
    audio(Sent/Received)Bytes number 已发送/接收音频字节数
    audio(Sent/Received)Packets number 已发送/接收音频包数
    audio(Sent/Received)PacketsLostRate number 发送/接收音频丢包率
    video(Sent/Received)Bytes number 已发送/接收视频字节数
    video(Sent/Received)FrameRate number 发送/接收视频帧率,单位是 fps
    video(Sent/Received)Packets number 已发送/接收视频包数
    video(Sent/Received)PacketsLostRate number 发送/接收视频丢包率
    video(Sent/Received)ResolutionHeight number 视频高度
    video(Sent/Received)ResolutionWidth number 视频宽度

    stop

    stop(): void
    

    停止播放(仅停止播放,不断开rtc连接)

    close

    close(): void
    

    关闭视频流或音频流,停止推拉流,断开rtc连接,取消摄像头和麦克风的访问权限并清除统计

    enableAudio

    此接口已经废弃

    enableAudio(): boolean
    

    启用音频

    返回值

    true代表成功,false代表失败

    注意

    1.请使用unmuteAudio。

    enableVideo

    此接口已经废弃

    enableVideo(): boolean
    

    启用视频

    返回值

    true代表成功,false代表失败

    注意

    1.请使用unmuteVideo。

    disableAudio

    此接口已经废弃

    disableAudio(): boolean
    

    关闭音频

    返回值

    true代表成功,false代表失败

    注意

    1.请使用muteAudio。

    disableVideo

    此接口已经废弃

    disableVideo(): boolean
    

    关闭视频

    返回值

    true代表成功,false代表失败

    注意

    1.请使用muteVideo。

    muteAudio

    muteAudio(): boolean
    

    关闭音频

    返回值

    true代表成功,false代表失败

    muteVideo

    muteVideo(): boolean
    

    关闭视频

    返回值

    true代表成功,false代表失败

    unmuteAudio

    unmuteAudio(): void
    

    开启音频

    返回值

    true代表成功,false代表失败

    unmuteVideo

    unmuteVideo(): boolean
    

    关闭视频

    返回值

    true代表成功,false代表失败

    getId

    getId(): string
    

    获取流id

    返回值

    当前流的id

    hasAudio

    hasAudio(): boolean
    

    获取音频 flag

    返回值

    true:当前流有音频数据

    false:当前流没有音频数据

    hasVideo

    hasVideo(): boolean
    

    获取视频 flag

    返回值

    true:当前流有视频数据

    false:当前流没有视频数据

    replaceTrack

    replaceTrack(mediaStreamTrack: mediaStreamTrack, onSuccess?: () => void, onFailure?: (err: Error) => void): void
    

    替换媒体流里面的音频或者视频轨

    参数

    参数名 类型 说明 必填 默认值
    mediaStreamTrack mediaStreamTrack 媒体流轨道 是
    onSuccess function 成功回调 否 () =>{}
    onFailure function 失败回调 否 () =>{}

    注意

    1.mediaStreamTrack 为浏览器原生api。

    getAudioLevel

    getAudioLevel(): number
    

    获取当前音频能量(可以理解为音量)

    返回值

    number:取值范围 0-1

    注意

    1.该方法获取的是当前时刻的音量。如果想表示本地或远端音量的变化,建议使用 setTimeout 或者 setInterval 方法实时获取。

    startAudioMixing

    startAudioMixing(options: object, callback?: (err?: Error) => void): void
    

    开始播放音乐文件,指定在线音频文件和麦克风采集的音频流进行混音或替换(用音频文件替换麦克风采集的音频流)。

    参数

    参数名 类型 说明 必填 默认值
    options object 设置参数 是
    callback function 结果回调 否 () =>{}

    options详情

    属性名 类型 说明 必填 默认值
    cacheResource boolean 是否缓存混音文件 否 true
    cycle number 指定音频文件循环播放的次数 否 1
    filePath string 指定需要混音的在线音频文件 是
    loop boolean 是否循环播放 否 false
    playTime number 设置音频文件开始播放的时间位置,单位为 ms 是
    replace boolean 是否要用音频文件替换本地音频流 否 false

    使用示例

    stream.startAudioMixing({
        filePath: 'example.mp3',
        playTime: 0,
        loop: true
    }, function(error) {
        if (error) {
            // 错误处理
            return;
        }
        // 播放成功后的流程
    });
    

    注意

    1.支持浏览器:Safari 12 及以上版本,Chrome 65 及以上版本以及最新版 Firefox 。

    stopAudioMixing

    stopAudioMixing(callback?: (err?: Error) => void): void
    

    停止播放音乐文件

    参数

    参数名 类型 说明 必填 默认值
    callback function 结果回调 否 () =>{}

    pauseAudioMixing

    pauseAudioMixing(callback?: (err?: Error) => void): void
    

    暂停播放音乐文件

    参数

    参数名 类型 说明 必填 默认值
    callback function 结果回调 否 () =>{}

    resumeAudioMixing

    resumeAudioMixing(callback?: (err?: Error) => void): void
    

    恢复播放音乐文件

    参数

    参数名 类型 说明 必填 默认值
    callback function 结果回调 否 () =>{}

    getAudioMixingDuration

    getAudioMixingDuration(): number
    

    获取音乐文件总时长

    返回值

    音乐文件总时长(ms)

    getAudioMixingCurrentPosition

    getAudioMixingCurrentPosition(): number
    

    获取音乐文件播放进度

    返回值

    音乐文件播放进度(ms)

    setAudioMixingPosition

    setAudioMixingPosition(position: number, callback?: (err?: Error) => void): void
    

    设置音乐文件音频文件的播放位置

    参数

    参数名 类型 说明 必填 默认值
    position number 播放位置(ms) 是
    callback function 结果回调 否 () =>{}

    adjustAudioMixingVolume

    adjustAudioMixingVolume(volume: number, callback?: (err?: Error) => void): void
    

    设置音乐文件音量

    参数

    参数名 类型 说明 必填 默认值
    volume number:1-100 目标音量 是
    callback function 结果回调 否 () =>{}

    getVideoTrack

    getVideoTrack(): mediaStreamTrack
    

    获取当前流中的视频轨道

    返回值

    视频轨道

    注意

    1.mediaStreamTrack 为浏览器原生api。

    getAudioTrack

    getAudioTrack(): mediaStreamTrack
    

    获取当前流中的音频轨道

    返回值

    音频轨道

    注意

    1.mediaStreamTrack 为浏览器原生api。

    mirror

    mirror(enabled: boolean): void
    

    打开/关闭镜像(与原方向相反)

    Logger

    VRTC.Logger
    

    提供设置 logger 的方法,包括设置日志输出等级、开启/关闭日志上传。

    成员常量

    属性名 值
    VERBOSE -1
    DEBUG 0
    TRACE 1
    INFO 2
    WARNING 3
    ERROR 4
    NONE 5

    成员函数

    返回 名称
    无 setLogLevel

    函数说明

    setLogLevel

    设置日志输出等级

    setLogLevel(level: LogLevel): void
    

    参数

    参数名 类型 说明 必填 默认值
    level LogLevel 日志等级 是

    注意

    1.LogLevel 为 logger 成员常量:VERBOSE ,DEBUG ,TRACE ,INFO ,WARNING ,ERROR ,NONE

    2.默认输出等级为 WARNING 。

    3.LogLevel 中各个等级日志输出量递减。