本地流对象(LocalSteam)
该对象继承自Stream对象,并有如下新增接口。
接口 |
描述 |
---|---|
本地流初始化。 |
|
设置音频流配置。 |
|
设置视频流配置。 |
|
设置共享流配置。 |
|
为本地流对象添加音视频轨。 |
|
从本地流对象移除音视频轨。 |
|
为本地流对象替换音视频轨。 |
|
切换媒体输入设备。 |
|
开始播放在线音频文件。 |
|
停止播放在线音频文件。 |
|
暂停播放在线音频文件。 |
|
恢复播放在线音频文件。 |
|
获取在线音频文件时长。 |
|
设置在线音频音量大小。 |
|
设置在线音频播放进度。 |
|
获取在线音频播放进度。 |
initialize
initialize(): Promise<void>
【功能说明】
初始化本地音视频流对象。流只有初始化完成后才可以播放。
【请求参数】
无
【返回参数】
无
错误原因 |
描述 |
处理措施 |
---|---|---|
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"。
- RTCVideoProfile: {
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"。
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。
【返回参数】
无
getAudioMixingDuration
getAudioMixingDuration(): number
【功能说明】
获取在线音频文件时长。单位为毫秒。
【请求参数】
无
【返回参数】
音频文件时长。
setAudioMixingVolume
setAudioMixingVolume(level: number): void
【功能说明】
设置在线音频音量大小。
【请求参数】
音量大小。
【返回参数】
无
