Methods
-
<static> destroy()
-
获取音视频流 ID
Returns:
number
-
<static> stream类构造函数(options)
-
Parameters:
Name Type Description optionsObject 配置参数
Properties
Name Type Argument Description audioString <optional>
是否从麦克风采集音频
uidString <optional>
用户uid
microphoneIdString <optional>
麦克风设备 deviceId,通过 getMicrophones() 获取
videoObject <optional>
是否从摄像头采集视频
cameraIdString <optional>
摄像头设备 deviceId,通过 getCameras() 获取
screenObject <optional>
是否采集屏幕共享流。
audioProcessingObject <optional>
是否开启/关闭音频处理接口(3A接口)
注意:
音频处理接口取决于浏览器支持情况。目前Safari不支持AGC及ANS设置。
AEC: 是否开启声学回声消除。默认为 true。true:开启声学回声消除。false:关闭声学回声消除。AGC: 是否开启自动增益控制。默认为 true。true:开启自动增益控制。false:关闭自动增益控制。ANS: 是否开启自动噪声抑制。默认为 true。true:开启自动噪声抑制。false:关闭自动噪声抑制。
sourceIdObject <optional>
屏幕共享的数据源Id(electron用户可以自己获取)
audioSourceMeidaTrack <optional>
自定义的音频的track
videoSourceMeidaTrack <optional>
自定义的视频的track
Returns:
- Type
- Stream
-
adjustAudioMixingVolume()
-
调节伴奏音量
设置云端音乐的播放音量,不影响麦克风采集到的声音。
示例
const volume = 100 localStream.adjustAudioMixingVolume(volume).then(res=>{ console.log('设置伴音的音量成功') }).catch(err=>{ console.error('设置伴音的音量失败: ', err) })- 参数volume对象说明
参数名 类型 说明 volume Number 必须,设置的音量,取值0-255 Returns:
- Type
- Promise
-
cleanMediaRecording(options)
-
清除录制的音视频
Parameters:
Name Type Description optionsObject 参数对象
Properties
Name Type Description recordIdString 录制id,可以通过listMediaRecording接口获取
Returns:
- Type
- Promise
-
close(options)
-
关闭音视频输入设备,如麦克风、摄像头、屏幕共享,并且停止发布
Parameters:
Name Type Description optionsObject 配置对象。
Properties
Name Type Description typeString 媒体设备类型。可设置为:
- audio:音频设备,例如麦克风。
- video:视频设备,例如摄像头。
- screen:屏幕共享,即关闭屏幕共享。
Returns:
- Type
- Promise
-
destroy()
-
销毁实例
Parameters:
Type Description Void -
downloadMediaRecording(param, options)
-
下载录制的音视频
Parameters:
Name Type Description paramObject 参数对象
optionsObject 参数对象
Properties
Name Type Description recordIdString 录制id,可以通过listMediaRecording接口获取
Returns:
- Type
- Promise
-
getAudioLevel()
-
当前从麦克风中采集的音量
Returns:
- Type
- volume
-
getAudioMixingCurrentPosition()
-
获取伴奏播放进度
获取云端音乐的播放进度,单位是s,即从头开始播放了多少秒,可以供用户实现云端音乐的播放进度条。
示例const audioFilePlayedTime = localStream.getAudioMixingCurrentPosition()audioFilePlayedTime(类型是Object)返回值,说明如下:
audioFilePlayedTime属性 类型 说明 playedTime Number 音乐文件已经播放了多久,单位是s Returns:
- Type
- Object
-
getAudioMixingDuration()
-
获取伴奏时长
获取云端音乐文件的时长,单位是s。示例
const audioFileTotalTime = localStream.getAudioMixingDuration()- audioFileTotalTime(类型是Object)返回值,说明如下:
audioFileTotalTime属性 类型 说明 totalTime Number 音乐文件总时长,单位是s Returns:
- Type
- Object
-
getAudioStream()
-
获取音频流 MediaStream 对象,可用于自定义音频渲染。
您可以自行渲染这个对象,例如将 audio dom 节点的 srcObject 属性设为该对象。
注意:使用自定义音频渲染功能时,应该在播放远端流时,关闭默认的音频渲染。Returns:
- Type
- MediaStream
Example
remoteStream.play({ audio: false, video: true }); const audioStream = remoteStream.getAudioStream(); // audioDom为自行创建的DOM节点 audioDom.srcObject = audioStream; -
hasAudio()
-
当前Stream是否有音频
Returns:
- Type
- Boolean
-
hasVideo()
-
获取视频 flag
Returns:
- Type
- Boolean
-
init()
-
初始化音视频流对象
Returns:
- Type
- Promise
-
isPlaying(type)
-
返回音视频流当前是否在播放状态
Parameters:
Name Type Description typestring 查看的媒体类型: audio/video
Returns:
- Type
- Promise
-
listMediaRecording()
-
枚举录制的音视频
Returns:
- Type
- Array
-
muteAudio()
-
禁用音频轨道
Returns:
- Type
- Promise
-
muteScreen()
-
禁用辅流轨道。
调用此方法之后,屏幕共享会被暂停。Returns:
- Type
- Promise
-
muteVideo()
-
禁用视频轨道
注意:自 V4.1.0 版本起,muteVideo 和 unmuteVideo 接口不再对屏幕共享有效,应使用 muteScreen 和 unmuteScreen 暂停或重新启动屏幕共享。Returns:
- Type
- Promise
-
open(options)
-
打开音视频输入设备,如麦克风、摄像头、屏幕共享,并且发布设备对应的音视频流。
Parameters:
Name Type Description optionsObject 配置对象。
Properties
Name Type Description typeString 媒体设备类型。可设置为:
- audio:音频设备,例如麦克风。
- video:视频设备,例如摄像头。
- screen:屏幕共享,即启动屏幕共享。
deviceIdString 指定要开启的设备 ID。您可以通过 getDevices 查看设备列表、获取设备 ID。
sourceIdString Electron 屏幕共享的数据源 ID,您可以自行获取。
Returns:
- Type
- Promise
-
pauseAudioMixing()
-
暂停播放伴奏
开启云端音乐文件和本地麦克风声音混合后,暂停远端音乐的播放,麦克风采集到的声音不变。localStream.pauseAudioMixing().then(res=>{ console.log('暂停伴音成功') }).catch(err=>{ console.error('暂停伴音失败: ', err) })err(格式是Object)伴音错误码,属性如下:
err属性名 类型 说明 name string 错误名称 code number 错误码 desc string 错误描述 pauseAudioMixing接口可能出现的错误码
name code desc 'AudioMixingUnsupport' 63102 '该浏览器不支持伴音功能' 'pausedMusicalAccompaniment' 63104 '已经暂停伴音' 'UnstartMusicalAccompaniment' 63105 '当前没有伴音' Returns:
- Type
- Promise
-
play(view [, options])
-
播放音视频流。
Parameters:
Name Type Argument Description viewdiv div标签,播放画面的dom容器节点。
optionsobject <optional>
播放的音视频选项。
Properties
Name Type Argument Description audioboolean <optional>
是否播放音频流。默认播放本地音频流,不播放远端音频流。
videoboolean <optional>
是否播放视频流。默认播放视频流。
screenboolean <optional>
是否播放屏幕共享。默认播放。
Returns:
- Type
- Promise
-
playMediaRecording(options)
-
播放视频录制
Parameters:
Name Type Description optionsObject 参数对象
Properties
Name Type Description recordIdString 录制id,可以通过listMediaRecording接口获取
viewElement 音频或者视频画面待渲染的DOM节点,如div、span等非流媒体节点
Returns:
- Type
- Promise
-
resumeAudioMixing()
-
恢复播放伴奏
恢复本地语音伴音,伴音文件将从暂停时位置开始播放。
localStream.resumeAudioMixing().then(res=>{ console.log('恢复伴音成功') }).catch(err=>{ console.error('恢复伴音失败: ', err) })err(格式是Object)伴音错误码,属性如下:
err属性名 类型 说明 name string 错误名称 code number 错误码 desc string 错误描述 resumeAudioMixing接口可能出现的错误码
name code desc 'AudioMixingUnsupport' 63102 '该浏览器不支持伴音功能' 'UnpauseMusicalAccompaniment' 63103 '已经暂停伴音' 'UnstartMusicalAccompaniment' 63105 '当前没有伴音' Returns:
- Type
- Promise
-
setAudioMixingPosition(playStartTime)
-
设置伴奏音频文件的播放位置。可以根据实际情况播放文件,而不是非得从头到尾播放一个文件,单位为ms
设置云端音乐的播放位置,即直接跳到设置的时间点开始播放,可以供用户实现音乐拖动、快进、快退等功能。
const playStartTime = 10 localStream.setAudioMixingPosition(playStartTime).then(res=>{ console.log('设置伴音播放的位置成功') }).catch(err=>{ console.error('设置伴音播放的位置失败: ', err) })参数playStartTime对象说明
参数名 类型 说明 playStartTime Number 必须,设置的开始播放时间,取值0-音乐文件的总时长 Parameters:
Name Type Description playStartTimeNumber 伴音播放的位置
Returns:
- Type
- Promise
-
setAudioOutput(deviceId)
-
可以在麦克风和扬声器之间切换。在播放订阅流之前或之后都可以调用该方法。
目前只有 Chrome 49 以上的浏览器支持该方法。Parameters:
Name Type Description deviceId设备的 ID,可以通过 getDevices 方法获取。获取的 ID 为 ASCII 字符,字符串长度大于 0 小于 256 字节。
Returns:
- Type
- Promise
-
setAudioProfile(profile)
-
设置音频属性
Parameters:
Name Type Description profileString 要设置的音频的属性: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)
Returns:
- Type
- Void
-
setAudioVolume(volume)
-
设置音频播放的音量。
Parameters:
Name Type Description volumeNumber 要设置的远端音频的播放音量,范围为 0(静音)到 100(声音最大)
Returns:
- Type
- Promise
-
setCanvasWatermarkConfigs(options)
-
设置画布
Parameters:
Name Type Description optionsNERtcCanvasWatermarkConfig 水印参数对象
Properties
Name Type Description textWatermarksArray.<NERtcTextWatermarkConfig> 文字水印,最多支持10个
timestampWatermarksNERtcTimestampWatermarkConfig 时间戳水印
imageWatermarksArray.<NERtcImageWatermarkConfig> 图片水印,最多支持4个
Returns:
,用于下载等操作
- Type
- Promise
-
setCaptureVolume(volume)
-
设置麦克风采集的音量。
Parameters:
Name Type Description volumeNumber 要设置的麦克风采集音量。,范围为 0(静音)到 100(声音最大)
Returns:
- Type
- Void
-
setLocalRenderMode(options)
-
设置本端视频画面大小。
Parameters:
Name Type Description optionsObject 配置对象。
Properties
Name Type Argument Description widthNumber 宽度。
heightNumber 高度。
cutBoolean 是否裁剪。
mediaTypeString <optional>
指定设置的对象,即调整的是摄像头画面还是屏幕共享画面。默认为同时设置。
可设置为:- video:设置本端摄像头画面。
- screen:设置本端屏幕共享画面。
Returns:
- Type
- Void
-
setRemoteRenderMode(options)
-
设置远端视频画面大小。
Parameters:
Name Type Description optionsObject 配置对象
Properties
Name Type Argument Description widthNumber 宽度
heightNumber 高度
cutBoolean 是否裁剪
mediaTypeString <optional>
指定设置的对象,即调整的是摄像头画面还是屏幕共享画面。默认为同时设置。
可设置为:- video:设置远端摄像头画面。
- screen:设置远端屏幕共享画面。
Returns:
- Type
- Void
-
setScreenProfile(options)
-
设置屏幕共享属性。
Parameters:
Name Type Description optionsObject 配置参数
Properties
Name Type Argument Description resolutionString <optional>
设置本端屏幕共享分辨率:WebRTC2.VIDEO_QUALITY_480p、WebRTC2.VIDEO_QUALITY_720p、WebRTC2.VIDEO_QUALITY_1080p
frameRateString <optional>
设置本端视频帧率:WebRTC2.CHAT_VIDEO_FRAME_RATE_5、WebRTC2.CHAT_VIDEO_FRAME_RATE_10、WebRTC2.CHAT_VIDEO_FRAME_RATE_15、WebRTC2.CHAT_VIDEO_FRAME_RATE_20、WebRTC2.CHAT_VIDEO_FRAME_RATE_25
Returns:
- Type
- Void
-
setSubscribeConfig(options)
-
设置视频订阅的参数。
Parameters:
Name Type Description optionsObject 配置参数。
Properties
Name Type Argument Description audioBoolean <optional>
是否订阅音频流。
videoBoolean <optional>
是否订阅视频流。
screenBoolean <optional>
是否订阅屏幕共享流(辅流)。默认为 true,即订阅辅流形式的屏幕共享。
highOrLowNumber <optional>
0 表示小流,1 表示大流。
Returns:
- Type
- Null
-
setVideoProfile(options)
-
设置视频属性。
Parameters:
Name Type Description optionsObject 配置参数
Properties
Name Type Argument Description resolutionNumber <optional>
设置本端视频分辨率:WebRTC2.VIDEO_QUALITY_180p、WebRTC2.VIDEO_QUALITY_480p、WebRTC2.VIDEO_QUALITY_720p、WebRTC2.VIDEO_QUALITY_1080p
frameRateNumber <optional>
设置本端视频帧率:WebRTC2.CHAT_VIDEO_FRAME_RATE_5、WebRTC2.CHAT_VIDEO_FRAME_RATE_10、WebRTC2.CHAT_VIDEO_FRAME_RATE_15、WebRTC2.CHAT_VIDEO_FRAME_RATE_20、WebRTC2.CHAT_VIDEO_FRAME_RATE_25
Returns:
- Type
- Null
-
startAudioMixing(options)
-
云端音乐文件和本地麦克风声音混合;需要在启动麦克风之后使用
注意事项
Web 端 NERTC SDK 在 H5 平台不支持以下伴音相关 API:
Stream#startAudioMixingStream#stopAudioMixingStream#pauseAudioMixingStream#resumeAudioMixingStream#adjustAudioMixingVolumeStream#getAudioMixingDuration
如果您调用了这些 API,SDK 会报错
BROWSER_NOT_SUPPORT。实现方法
参考如下步骤,在你的项目中实现播放云端混音文件:
- 在加入频道成功后调用
startAudioMixing开始混音。 - 根据
pauseAudioMixing、resumeAudioMixing等操作 进行 暂停、恢复、控制音量、seek 等功能。 - 在离开频道前调用
stopAudioMixing结束混音。
示例代码
const audioMixingEndHandler = function(event){ console.warn('伴音结束: ', event) } const options = { audioFilePath: '"someaudio.mp3"', loopback: false, replace: false, cycle: 0, playStartTime: 0, volume: 200, auidoMixingEnd: audioMixingEndHandler } localStream.startAudioMixing(options).then(res=>{ console.log('伴音成功') }).catch(err=>{ console.error('伴音失败: ', err) })- 参数options对象说明
参数名 类型 说明 audioFilePath String 必须,云端音频文件路径 loopback Boolean 可选,是否循环播放,缺省为false,即播放一次就结束(这里如果是false,则cycle参数不生效) replace Boolean 可选,是否替换麦克风采集的音频数据,缺省为false cycle number 可选,表示循环播放的次数,需要loopback参数置为true(如果想无限循环,cycle设置为0,loopback设置为true),缺省为0,如果loopback为true,表示无限循环,如果loopback为false,该参数不生效 playStartTime number 可选,设置音频文件开始播放的位置,单位为 s。缺省设为 0,即从头开始播放 volume number 可选,设置音频文件的音量,范围(0-255) auidoMixingEnd Function 可选,伴音文件播放完成时的通知反馈 err(格式是Object)伴音错误码,属性如下:
err属性名 类型 说明 name string 错误名称 code number 错误码 desc string 错误描述 startAudioMixing接口可能出现的错误码:
name code desc 'AudioMixingUnsupport' 63102 '该浏览器不支持伴音功能' 'AudioFileDownloadError' 63101 '伴音文件加载失败' 'AudioStreamFetchError' 63002 '获取麦克风音频流失败' 'AudioDisabled' 63007 '音频功能已被禁用' Parameters:
Name Type Description optionsObject 参数对象
Properties
Name Type Description audioFilePathString 必须,云端音频文件路径
loopbackString 可选,是否循环播放,缺省为false,表示播放一次就结束(这里如果是false,则cycle参数不生效)
replaceString 可选,是否替换麦克风采集的音频数据,缺省为false
cycleNumber 可选,循环的次数,需要loopback参数置为true(如果想无限循环,cycle设置为0,loopback设置为true),缺省为0,如果loopback为true,表示无限循环,如果loopback为false,该参数不生效
playStartTimeNumber 可选,设置音频文件开始播放的位置,单位为 s。缺省设为 0,即从头开始播放
volumefunction 可选,设置伴音文件的音量
auidoMixingEndfunction 可选,伴音文件播放完成的通知反馈(正常停止伴音或关掉通话获取其他原因停止伴音不会触发)
Returns:
- Type
- Promise
-
startMediaRecording(param)
-
开启单人视频录制。
Parameters:
Name Type Description paramObject 参数对象。
Properties
Name Type Description typeString 指定录制的音视频流类型。可设置为:
- audio:仅录制音频流。
- video:同时录制音频流和摄像头视频流。
- screen:同时录制音频流和屏幕共享流(辅流)。
resetBoolean 如果之前的录制视频未下载,是否重置,默认false
Returns:
包含 recordId 值,用于下载等操作。
- Type
- Promise
-
stop()
-
停止播放音视频流
Returns:
- Type
- Void
-
stopAudioMixing()
-
停止播放伴奏
停止远端音乐文件的播放,麦克风采集的声音不变。示例
localStream.stopAudioMixing().then(res=>{ console.log('停止伴音成功') }).catch(err=>{ console.error('停止伴音失败: ', err) })err(格式是Object)伴音错误码,属性如下:
err属性名 类型 说明 name string 错误名称 code number 错误码 desc string 错误描述 stopAudioMixing接口可能出现的错误码
name code desc 'AudioMixingUnsupport' 63102 '该浏览器不支持伴音功能' 'UnstartMusicalAccompaniment' 63105 '当前没有伴音' Returns:
- Type
- Promise
-
stopMediaRecording(options)
-
结束视频录制
Parameters:
Name Type Description optionsObject 参数对象
Properties
Name Type Description recordIdString 录制id,可以通过listMediaRecording接口获取
Returns:
- Type
- Promise
-
switchDevice(type, deviceId)
-
切换媒体输入设备,已经发布的流,切换后不用重新发流
Parameters:
Name Type Description typeString 设备的类型,"audio": 音频输入设备,"video": 视频输入设备
deviceIdString 设备的 ID,可以通过 getDevices 方法获取。获取的 ID 为 ASCII 字符,字符串长度大于 0 小于 256 字节。
Returns:
- Type
- Promise
-
takeSnapshot(options)
-
截取指定用户的视频画面,文件保存在浏览器默认路径下。
Parameters:
Name Type Description optionsObject 配置参数
Properties
Name Type Argument Description nameString 截取的图片的保存名称(默认是uid-1的格式名称)
mediaTypeString <optional>
指定截取的视频流类型,即截取的是摄像头画面还是屏幕共享画面。默认为同时截取。
可设置为:- video:截取摄像头画面。
- screen:截取屏幕共享画面。
Returns:
- Type
- Promise
-
unmuteAudio()
-
启用音频轨道
Returns:
- Type
- Promise
-
unmuteScreen()
-
重新启用辅流轨道。
调用此方法之后,屏幕共享会被重新启动。Returns:
- Type
- Promise
-
unmuteVideo()
-
启用视频轨道。
注意:自 V4.1.0 版本起,muteVideo 和 unmuteVideo 接口不再对屏幕共享有效,应使用 muteScreen 和 unmuteScreen 暂停或重新启动屏幕共享。Returns:
- Type
- Promise