添加音视频轨道
该方法将音视频轨道添加到 Stream。
可以通过 mediaStream
方法获取音视频轨道。
调节伴奏音量
伴奏音量范围为 0~100。默认 100 为原始文件音量。
关闭音视频流
该方法关闭视频流或音频流。调用该方法会取消摄像头和麦克风的访问权限。
禁用音频轨道
DEPRECATED
自 2.5.1 起废弃,请使用 muteAudio。
该方法禁用音频轨道。在 createStream 时将 audio
设置为 true
才可使用该方法。
禁用成功时,返回true
禁用失败(没有音频/未初始化/已禁用等),返回false
禁用视频轨道
DEPRECATED
自 2.5.1 起废弃,请使用 muteVideo。
该方法禁用视频轨道。在 createStream 时将 video
设置为 true
才可使用该方法。
禁用成功时,返回true
禁用失败(没有视频/未初始化/已禁用等),返回false
启用音频轨道
DEPRECATED
自 2.5.1 起废弃,请使用 unmuteAudio。
该方法启用音频轨道。在 createStream 时将 audio
设置为 true
才可使用该方法。
音频轨道默认为开启状态。如果你调用了 disableAudio,可调用本方法启用音频。 启用成功时,返回true 启用失败(没有音频/未初始化/已启用等),返回false
启用视频轨道
DEPRECATED
自 2.5.1 起废弃,请使用 unmuteVideo。
该方法启用视频轨道。在 createStream 时将 video
设置为 true
才可使用该方法。
视频轨道默认为开启状态。如果你调用了 disableVideo,可调用本方法启用视频。 启用成功时,返回true 启用失败(没有视频/未初始化/已启用等),返回false
获取当前音量
该方法获取的是当前时刻的音量。如果你想表示本地或远端音量的变化,我们建议你使用 setTimeout
或者 setInterval
方法实时获取。
获取伴奏播放进度
该方法获取伴奏播放进度,单位为 ms。
方法调用成功返回伴奏播放进度。
获取伴奏时长
方法调用成功返回伴奏时长(ms)。
获取音频轨道
该方法获取音视频流中的音频轨道,可与 replaceTrack 搭配使用。
如果音视频流中包含音频轨道,会以 MediaStreamTrack 对象返回。
获取音视频流 ID
该方法可以获取音视频流 ID。
获取连接数据
该方法获取音视频流的连接数据。
Note:
部分统计数据可能存在延时。
回调包含音视频流的连接统计数据:
获取视频轨道
该方法获取音视频流中的视频轨道,可与 replaceTrack 搭配使用。
如果音视频流中包含视频轨道,会以 MediaStreamTrack 对象返回。
获取音频 flag
获取视频 flag
初始化音视频对象
该方法初始化本地创建的音视频流对象。如果调用失败,回调函数会返回错误信息,例如:{type: "error", msg: "NotAllowedError", info: "Permission denied"}
。
msg
字段可能出现以下值:
方法调用成功时执行的回调函数
方法调用失败时执行的回调函数
返回音视频流当前是否在播放状态
true
:该音视频流正在渲染或播放。false
:该音视频流没有渲染。禁用音频轨道
该方法禁用音频轨道。
Note: 对于本地流,在 createStream 时将 audio
设置为 true
才可使用该方法。
true
:禁用音频轨道成功。false
:禁用音频轨道失败,可能的原因包括没有音频、流未初始化、音频轨道已经禁用等。禁用视频轨道
该方法禁用视频轨道。
Note: 对于本地创建的流,在 createStream 时将 video
设置为 true
才可使用该方法。
true
:禁用视频轨道成功。false
:禁用视频轨道失败,可能的原因包括没有视频、流未初始化、视频轨道已经禁用等。该回调通知 App 已获取本地摄像头/麦克风使用权限。
该回调通知 App 已禁止本地摄像头/麦克风使用权限。
该回调通知 App 屏幕共享已停止。
该回调通知混音伴奏播放已开始。
Note:
该事件会在伴奏加载完成并开始播放以及伴奏暂停后恢复播放这两种情况下被触发。
该回调通知混音伴奏播放完毕。
暂停播放伴奏
播放音视频流
该方法播放视频流或音频流。
Note:
受浏览器策略影响,在 Chrome 70+ 和 Safari 浏览器上,该方法必须由用户手势触发,详见 Autoplay Policy Changes。
HTML element ID。ASCII 字符集中的字母和数字,以及 “_”、“-"、".",字符串长度大于 0 小于 256 字节。
用于流播放的选项
设置视频播放时的显示模式,有 "cover"
和 "contain"
可以选择:
object-fit
的 cover
选项。contain
选项。对于本地流来说,播放视频流默认使用 cover 模式,屏幕共享默认使用 contain 模式;对于远端流来说,因为不知道流的类型,默认使用 cover 模式。
设置播放的流是否静音
muted
通常用于规避浏览器的自动播放策略。
一般情况下,播放带声音的视频时,浏览器会要求该行为由手势触发。
如果你不希望以手势触发,也可以选择将 muted
设为 true,这样可以绕过自动播放策略。
关于自动播放策略的更多信息,请参考 Autoplay Policy Changes。
移除音视频轨道
该方法将音视频轨道从 Stream 中移除。
Note
可以通过 mediaStream
方法获取音视频轨道。
替换音视频轨道
该方法可以替换本地音视频流中的音视频轨道。
本地流发布后,可以通过该方法切换摄像头或者切换麦克风和播放的 mp3 等。
新的音视频轨道可以通过 getUserMedia
,MediaElement.captureStream
等方法获取。
被替换的音视频轨道会被强制停止。
Note:
新的音视频轨道。
方法调用成功的回调。
方法调用失败的回调。
恢复播放伴奏
设置伴奏音频文件的播放位置
该方法可以设置音频文件的播放位置,这样你可以根据实际情况播放文件,而不是非得从头到尾播放一个文件。
整数,进度条位置,单位为 ms。取值范围为 [0,100000000]。
设置音频输出
该方法可以在语音场景下设置音频输出设备,在通话时切换麦克风和扬声器。
Note:
目前只有 Chrome 49 以上的浏览器支持该方法。
设备 ID,可以通过 getDevices 获得,设备的 kind 属性应该为 "audiooutput"
。
获取的 ID 为 ASCII 字符,字符串长度大于 0 小于 256 字节。
设置音频属性
该方法设置音频属性,为可选项,且需在 Stream.init 之前调用。默认值为 "music_standard"
。
Note:
由于各浏览器的限制,部分浏览器对设置的音频属性不一定能全部适配:
音频属性,包含以下选项:
"speech_low_quality"
: 16 kHz 采样率,单声道,编码码率约 24 Kbps"speech_standard"
: 32 kHz 采样率,单声道,编码码率约 24 Kbps"music_standard"
: 48 kHz 采样率,单声道,编码码率约 40 Kbps"standard_stereo"
: 48 kHz 采样率,双声道,编码码率约 64 Kbps"high_quality"
: 48 kHz 采样率,单声道, 编码码率约 128 Kbps"high_quality_stereo"
: 48 kHz 采样率,双声道,编码码率约 192 Kbps调节音量大小
该方法可以调节订阅流的音量大小。
音量,范围为 0(静音) 到 100(声音最大)。
设置屏幕属性
该方法设置屏幕共享时屏幕的显示属性。
屏幕属性,下表列出可设置的屏幕属性。
Screen Profile Definition
屏幕属性 | 分辨率 | 帧率 |
---|---|---|
480p_1 | 640 × 480 | 5 |
480p_2 | 640 × 480 | 30 |
720p_1 | 1280 × 720 | 5 |
720p_2 | 1280 × 720 | 30 |
1080p_1 | 1920 × 1080 | 5 |
1080p_2 | 1920 × 1080 | 30 |
Note:
由于设备和浏览器的限制,部分浏览器对设置的屏幕属性不一定能全部适配。这种情况下浏览器会自动调整分辨率,计费也将按照实际分辨率计算。
设置视频属性
该方法设置视频属性,且须在 Stream.init 之前调用。默认值为 "480p_1"
。
视频属性。下表列出可设置的视频属性。
Video Profile Definition
视频属性 | 分辨率(宽×高) | 帧率(fps) | 码率(Kbps) | Chrome | Firefox/Opera | Safari |
---|---|---|---|---|---|---|
120p | 160 × 120 | 15 | 65 | ✓ | ||
120p_1 | 160 × 120 | 15 | 65 | ✓ | ||
120p_3 | 120 × 120 | 15 | 50 | ✓ | ||
180p | 320 × 180 | 15 | 140 | ✓ | ||
180p_1 | 320 × 180 | 15 | 140 | ✓ | ||
180p_3 | 180 × 180 | 15 | 100 | ✓ | ||
180p_4 | 240 × 180 | 15 | 120 | ✓ | ||
240p | 320 × 240 | 15 | 200 | ✓ | ||
240p_1 | 320 × 240 | 15 | 200 | ✓ | ||
240p_3 | 240 × 240 | 15 | 140 | ✓ | ||
240p_4 | 424 × 240 | 15 | 220 | ✓ | ||
360p | 640 × 360 | 15 | 400 | ✓ | ||
360p_1 | 640 × 360 | 15 | 400 | ✓ | ||
360p_3 | 360 × 360 | 15 | 260 | ✓ | ||
360p_4 | 640 × 360 | 30 | 600 | ✓ | ||
360p_6 | 360 × 360 | 30 | 400 | ✓ | ||
360p_7 | 480 × 360 | 15 | 320 | ✓ | ||
360p_8 | 480 × 360 | 30 | 490 | ✓ | ||
360p_9 | 640 × 360 | 15 | 800 | ✓ | ||
360p_10 | 640 × 360 | 24 | 800 | ✓ | ||
360p_11 | 640 × 360 | 24 | 1000 | ✓ | ||
480p | 640 × 480 | 15 | 500 | ✓ | ✓ | ✓ |
480p_1 | 640 × 480 | 15 | 500 | ✓ | ✓ | ✓ |
480p_2 | 648 × 480 | 30 | 1000 | ✓ | ✓ | ✓ |
480p_3 | 480 × 480 | 15 | 400 | ✓ | ✓ | ✓ |
480p_4 | 640 × 480 | 30 | 750 | ✓ | ✓ | ✓ |
480p_6 | 480 × 480 | 30 | 600 | ✓ | ✓ | ✓ |
480p_8 | 848 × 480 | 15 | 610 | ✓ | ✓ | ✓ |
480p_9 | 848 × 480 | 30 | 930 | ✓ | ✓ | ✓ |
480p_10 | 640 × 480 | 10 | 400 | ✓ | ✓ | ✓ |
720p | 1280 × 720 | 15 | 1130 | ✓ | ✓ | ✓ |
720p_1 | 1280 × 720 | 15 | 1130 | ✓ | ✓ | ✓ |
720p_2 | 1280 × 720 | 15 | 2080 | ✓ | ✓ | ✓ |
720p_3 | 1280 × 720 | 30 | 1710 | ✓ | ✓ | ✓ |
720p_5 | 960 × 720 | 15 | 910 | ✓ | ✓ | ✓ |
720p_6 | 960 × 720 | 30 | 1380 | ✓ | ✓ | ✓ |
1080p | 1920 × 1080 | 15 | 2080 | ✓ | ✓ | |
1080p_1 | 1920 × 1080 | 15 | 2080 | ✓ | ✓ | |
1080p_2 | 1920 × 1080 | 30 | 3000 | ✓ | ✓ | |
1080p_3 | 1920 × 1080 | 30 | 3150 | ✓ | ✓ | |
1080p_5 | 1920 × 1080 | 60 | 4780 | ✓ | ✓ | |
1440p | 2560 × 1440 | 30 | 4850 | ✓ | ✓ | |
1440p_1 | 2560 × 1440 | 30 | 4850 | ✓ | ✓ | |
1440p_2 | 2560 × 1440 | 60 | 7350 | ✓ | ✓ | |
4K | 3840 × 2160 | 30 | 8910 | ✓ | ✓ | |
4K_1 | 3840 × 2160 | 30 | 8910 | ✓ | ✓ | |
4K_3 | 3840 × 2160 | 60 | 13500 | ✓ | ✓ |
Note:
视频能否达到 1080p 以上的分辨率取决于设备的性能,在性能配备较低的设备上有可能无法实现。如果采用 720p 分辨率而设备性能跟不上,则有可能出现帧率过低的情况。声网将继续在后续版本中为较低端设备进行视频优化。
Safari 浏览器不支持自定义视频帧率(默认为 30 fps)。如果你设置的视频帧率不是 30 fps,Safari 浏览器可能会修改或者拒绝你的设置。
由于设备和浏览器的限制,部分浏览器对设置的 Video Profile 不一定能全部适配。这种情况下浏览器会自动调整分辨率,计费也将按照实际分辨率计算。
开始播放伴奏
指定在线音频文件和麦克风采集的音频流进行混音或替换(用音频文件替换麦克风采集的音频流)。
可以通过参数指定音频文件播放的次数和时长。
Note:
混音设置。
指定音频文件循环播放的次数(仅支持 Chrome 65+)
正整数,取值范围为 [1,10000]。默认值为 1。
指定需要混音的在线音频文件。
ASCII 字符,字符串长度大于 0 小于 256 字节。
支持以下音频格式: mp3,aac 以及浏览器支持的其他音频格式。
是否要无限循环播放音频文件
true
:无限循环播放音频文件。请不要和 cycle
同时设置。false
:(默认值)关闭无限循环播放。设置音频文件开始播放的时间位置,单位为 ms。整数,取值范围为 [0,100000000]。
如需从头开始播放,设置为 0 即可。
是否要用音频文件替换本地音频流
true
:音频文件内容将会替换本地录音的音频流false
:(默认值)音频文件内容将会和麦克风采集的音频流进行混音Note:
Safari 不支持此设置。
方法的回调:
Note: 混音其他方法的回调参数与此相同,使用 Node.js 回调风格。
停止音视频流
调用该方法停止播放 Stream.play 播放的音视频流。
停止播放伴奏
切换媒体输入设备
该方法可以切换媒体输入设备:
已经发布的流,切换后不用重新发流。
下列情况无法使用本方法:
设备的类型
设备的 ID,可以通过 getDevices 方法获取。获取的 ID 为 ASCII 字符,字符串长度大于 0 小于 256 字节。
切换成功的回调
切换失败的回调
启用音频轨道
该方法启用音频轨道。
Note: 对于本地流,在 createStream 时将 audio
设置为 true
才可使用该方法。
音频轨道默认为开启状态。如果你调用了 muteAudio,可调用本方法启用音频。
true
:启用音频轨道成功。false
:启用音频轨道失败,可能的原因包括没有音频、流未初始化、音频轨道已经启用等。启用视频轨道
该方法启用视频轨道。
Note: 对于本地创建的流,在 createStream 时将 video
设置为 true
才可使用该方法。
视频轨道默认为开启状态。如果你调用了 muteVideo,可调用本方法启用视频。
true
:启用视频轨道成功。false
:启用视频轨道失败,可能的原因包括没有视频、流未初始化、视频轨道已经启用等。
通过 createStream 创建的音视频流对象。
一个音视频流对象指通话中的本地或远端音视频流。
Stream 方法除了 Stream.init 只可对本地创建的音视频流调用之外,其他所有方法本地和远端音视频流均可调用。