文档首页 > > SDK参考> Web SDK> 接口参考> 本地流对象(LocalSteam)

本地流对象(LocalSteam)

分享
更新时间:2021/01/11 GMT+08:00

该对象继承自Stream对象,并有如下新增接口。

表1 LocalStream接口

接口

描述

initialize

本地流初始化。

setAudioProfile

设置音频流配置。

setVideoProfile

设置视频流配置。

setScreenProfile

设置共享流配置。

addTrack

为本地流对象添加音视频轨。

removeTrack

从本地流对象移除音视频轨。

replaceTrack

为本地流对象替换音视频轨。

switchDevice

切换媒体输入设备。

startAudioMixing

开始播放在线音频文件。

stopAudioMixing

停止播放在线音频文件。

pauseAudioMixing

暂停播放在线音频文件。

resumeAudioMixing

恢复播放在线音频文件。

getAudioMixingDuration

获取在线音频文件时长。

setAudioMixingVolume

设置在线音频音量大小。

setAudioMixingPosition

设置在线音频播放进度。

getAudioMixingCurrentPosition

获取在线音频播放进度。

initialize

initialize():  Promise<void>

功能说明

初始化本地音视频流对象。流只有初始化完成后才可以播放。

请求参数

返回参数

表2 初始化错误信息列表

错误原因

描述

处理措施

NotFoundError

找不到满足请求参数的媒体类型(包括:音频、视频、屏幕分享)。例如:PC没有摄像头但是请求浏览器获取视频流,则会触发该错误

建议在通话开始前引导用户检查通话所需的摄像头或麦克风等设备,若无摄像头设备且需要进行语音通话,可在创建本地流对象HRTC.createStream({ audio: true, video: false }) 指明仅采集麦克风

NotAllowedError

未获得用户设备列表(摄像头、麦克风、屏幕共享)的授权。

提示用户不授权摄像头/麦克风访问无法进行音视频通话

NotReadableError

尽管用户已经授权使用相应的设备,但是由于操作系统上某个硬件、浏览器或者网页层面发生的错误导致设备无法被访问

根据浏览器的报错信息处理,并提示用户:“暂时无法访问摄像头/麦克风,请确保当前没有其他应用请求访问摄像头/麦克风,并重试”

OverConstrainedError

cameraId/microphoneId参数的值无效

确保cameraId/microphoneId传值正确且有效。

AbortError

由于某些未知原因导致设备无法被使用

-

setAudioProfile

setAudioProfile(profile: string|RTCAudioProfile):  void

功能说明

设置音频流配置,采样率、声道和码率等。如果未调用该接口设置,则SDK设置为默认值。

请求参数

  • profile:string类型或RTCAudioProfile类型。 若为string类型,则相关的采样率、声道数、码率如表3所示。 若为RTCAudioProfile类型,则需要根据实际情况进行配置,推荐使用已定义的profile,输入不合法时,默认使用"low"。
    表3 profile对应的采样率、声道数和码率

    profile

    采样率(千赫兹/KHZ)

    声道数

    码率(Kbps)

    low

    16

    1

    24

    standard

    48

    1

    40

    high

    48

    1

    128

  • RTCVideoProfile: {

    sampleRate:可选,number类型,采样率。

    channelCount:可选,number类型,音轨数。

    bitrate:可选,number类型,码率,单位为bps。

    }

返回参数

【注意事项】

该方法需要在调用initialize之前调用。

setVideoProfile

setVideoProfile(profile: string|RTCVideoProfile):  void

功能说明

设置视频流配置,如分辨率、帧率和码率等。如果未调用该接口设置,则SDK设置默认值。

请求参数

  • profile:string类型或RTCVideoProfile类型。 若为string类型,则相关的分辨率、帧率和码率如表4。 若为RTCVideoProfile类型,则需要根据实际情况进行配置,推荐使用已定义的“profile”。输入不合法时,默认使用"720p_1"。
    表4 profile对应的分辨率、帧率和码率

    profile

    分辨率

    帧率

    最小码率(Kbps)

    最大码率(Kbps)

    90p_1

    160 x 90

    15

    64

    270

    90p_2

    120 x 90

    15

    64

    240

    120p_1

    160 x 120

    15

    64

    270

    120p_2

    120 x 120

    15

    64

    270

    180p_1

    320 x 180

    15

    80

    600

    180p_2

    240 x 180

    15

    80

    450

    180p_3

    180 x 180

    15

    64

    330

    240p_1

    320 x 240

    15

    100

    600

    240p_2

    240 x 240

    15

    80

    450

    270p_1

    480 x 270

    15

    160

    1050

    300p_1

    400 x 300

    15

    200

    900

    360p_1

    640 x 360

    15

    200

    1700

    360p_2

    480 x 360

    15

    200

    1000

    360p_3

    360 x 360

    15

    150

    660

    450p_1

    800 x 450

    15

    300

    2100

    480p_1

    640 x 480

    15

    250

    1800

    480p_2

    480 x 480

    15

    200

    1360

    540p_1

    960 x 540

    15

    400

    2400

    630p_1

    1120 x 630

    15

    450

    2800

    720p_1

    1280 x 720

    15

    500

    4000

    720p_2

    960 x 720

    15

    450

    3000

  • RTCVideoProfile: {

    width:可选,number类型,分辨率的宽度,单位为pixel。

    height:可选,number类型,分辨率的高度,单位为pixel。

    frameRate:可选,number类型,视频帧率,单位为帧/秒。

    bitrate:可选,number类型,视频码率,单位为bps。

    }

返回参数

【注意事项】

该方法需要在调用initialize之前调用。

setScreenProfile

setScreenProfile(profile: string|RTCScreenProfile):  void

功能说明

设置辅流配置,包括分辨率、帧率和码率等。如果未调用该接口设置,则SDK设置默认值。

请求参数

profile:string类型或RTCScreenProfile类型。若为string类型,则相关分辨率、帧率、码率如表5。如果为RTCScreenProfile,则需要根据实际情况进行配置,推荐使用已定义的“profile”。输入不合法时,默认使用"720p"。

表5 profile对应的分辨率、帧率和码率

profile

分辨率

帧率

码率(Kbps)

720p

1280 x 720

15

1200

1080p

1920 x 1080

15

2000

RTCScreenProfile: {

width:可选,number类型,分辨率的宽度,单位为pixel。

height:可选,number类型,分辨率的高度,单位为pixel。

frameRate:可选,number类型,视频帧率,单位为帧/秒。

bitrate:可选,number类型,视频码率,单位为bps。

}

返回参数

【注意事项】

该方法需要在调用initialize之前调用。

addTrack

addTrack(track: MediaStreamTrack):  promise<void>

功能说明

为本地流对象添加音视频轨。若该本地流已经被发布,则会自动更新发往远端的音视频流。

请求参数

track:MediaStreamTrack类型。

返回参数

removeTrack

removeTrack(track: MediaStreamTrack):  promise<void>

功能说明

从本地流对象移除音视频轨。若该本地流已经被发布,则会自动更新发往远端的音视频流。

请求参数

track:MediaStreamTrack类型。

返回参数

replaceTrack

replaceTrack(track: MediaStreamTrack, type: "audio" | "video"):  promise<void>

功能说明

为本地流对象替换音视频轨。若该本地流已经被发布,则会自动更新发往远端的音视频流。

请求参数

  • track:MediaStreamTrack类型。
  • type:string类型,"audio" | "video"。

返回参数

switchDevice

switchDevice(deviceType: "audio" | "video", deviceId: string): void

功能说明

切换媒体输入设备。

请求参数
  • deviceType:string类型,"audio" | "video"。
  • deviceId:string类型, 输入设备的设备ID。

返回参数

startAudioMixing

startAudioMixing(option: AudioMixOption): Promise<void>

功能说明

开始播放在线音频文件。

请求参数

option:音频文件播放参数。参数类型为AudioMixOption。

AudioMixOption: {

  • filePath:必选,类型为string,表示在线音频文件的下载路径。支持音频格式包括MP3、AAC以及浏览器支持的其他音频格式。
  • startTime:可选,类型number,表示音频文件开始播放的时间点,默认值为0。
  • replace:可选,类型为boolean,如果为true表示要用音频文件替换本地音频流,默认值为false。
  • loop:可选,类型为boolean,如果为true表示需要无限循环播放,默认值为false。
  • repeatCount:可选,类型为number,循环播放次数。如果为0,表示不重复播放,默认值为0。

}

loop设置为true时,repeatCount需要设置为0。

返回参数

stopAudioMixing

stopAudioMixing(): Promise<void>

功能说明

停止播放在线音频文件。

请求参数

返回参数

pauseAudioMixing

pauseAudioMixing(): Promise<void>

功能说明

暂停播放在线音频文件。

请求参数

返回参数

resumeAudioMixing

resumeAudioMixing(): Promise<void>

功能说明

恢复播放在线音频文件。

请求参数

返回参数

getAudioMixingDuration

getAudioMixingDuration(): number

功能说明

获取在线音频文件时长。单位为毫秒。

请求参数

返回参数

音频文件时长。

setAudioMixingVolume

setAudioMixingVolume(level: number): void

功能说明

设置在线音频音量大小。

请求参数

音量大小。

返回参数

setAudioMixingPosition

setAudioMixingPosition(position: number): void

功能说明

设置在线音频播放进度。

请求参数

position:进度,取值不能大于音频实际时长。单位为毫秒。

返回参数

getAudioMixingCurrentPosition

getAudioMixingCurrentPosition(): number

功能说明

获取在线音频播放进度。

请求参数

返回参数

当前音频播放进度。单位为毫秒。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问