Methods
-
<static> destroy()
-
获取音视频流 ID
Returns:
number
-
<static> stream类构造函数(options)
-
Parameters:
Name Type Description options
Object 配置参数
Properties
Name Type Argument Description audio
String <optional>
是否从麦克风采集音频
uid
String <optional>
用户uid
microphoneId
String <optional>
麦克风设备 deviceId,通过 getMicrophones() 获取
video
Object <optional>
是否从摄像头采集视频
cameraId
String <optional>
摄像头设备 deviceId,通过 getCameras() 获取
screen
Object <optional>
是否采集屏幕共享流。
audioProcessing
Object <optional>
是否开启/关闭音频处理接口(3A接口)
注意:
音频处理接口取决于浏览器支持情况。目前Safari不支持AGC及ANS设置。
AEC
: 是否开启声学回声消除。默认为 true。true
:开启声学回声消除。false
:关闭声学回声消除。AGC
: 是否开启自动增益控制。默认为 true。true
:开启自动增益控制。false
:关闭自动增益控制。ANS
: 是否开启自动噪声抑制。默认为 true。true
:开启自动噪声抑制。false
:关闭自动噪声抑制。
sourceId
Object <optional>
屏幕共享的数据源Id(electron用户可以自己获取)
audioSource
MeidaTrack <optional>
自定义的音频的track
videoSource
MeidaTrack <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 options
Object 参数对象
Properties
Name Type Description recordId
String 录制id,可以通过listMediaRecording接口获取
Returns:
- Type
- Promise
-
close(options)
-
关闭音视频输入设备,如麦克风、摄像头、屏幕共享,并且停止发布
Parameters:
Name Type Description options
Object 配置对象。
Properties
Name Type Description type
String 媒体设备类型。可设置为:
- audio:音频设备,例如麦克风。
- video:视频设备,例如摄像头。
- screen:屏幕共享,即关闭屏幕共享。
Returns:
- Type
- Promise
-
destroy()
-
销毁实例
Parameters:
Type Description Void -
downloadMediaRecording(param, options)
-
下载录制的音视频
Parameters:
Name Type Description param
Object 参数对象
options
Object 参数对象
Properties
Name Type Description recordId
String 录制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 type
string 查看的媒体类型: 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 options
Object 配置对象。
Properties
Name Type Description type
String 媒体设备类型。可设置为:
- audio:音频设备,例如麦克风。
- video:视频设备,例如摄像头。
- screen:屏幕共享,即启动屏幕共享。
deviceId
String 指定要开启的设备 ID。您可以通过 getDevices 查看设备列表、获取设备 ID。
sourceId
String 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 view
div div标签,播放画面的dom容器节点。
options
object <optional>
播放的音视频选项。
Properties
Name Type Argument Description audio
boolean <optional>
是否播放音频流。默认播放本地音频流,不播放远端音频流。
video
boolean <optional>
是否播放视频流。默认播放视频流。
screen
boolean <optional>
是否播放屏幕共享。默认播放。
Returns:
- Type
- Promise
-
playMediaRecording(options)
-
播放视频录制
Parameters:
Name Type Description options
Object 参数对象
Properties
Name Type Description recordId
String 录制id,可以通过listMediaRecording接口获取
view
Element 音频或者视频画面待渲染的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 playStartTime
Number 伴音播放的位置
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 profile
String 要设置的音频的属性: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 volume
Number 要设置的远端音频的播放音量,范围为 0(静音)到 100(声音最大)
Returns:
- Type
- Promise
-
setCanvasWatermarkConfigs(options)
-
设置画布
Parameters:
Name Type Description options
NERtcCanvasWatermarkConfig 水印参数对象
Properties
Name Type Description textWatermarks
Array.<NERtcTextWatermarkConfig> 文字水印,最多支持10个
timestampWatermarks
NERtcTimestampWatermarkConfig 时间戳水印
imageWatermarks
Array.<NERtcImageWatermarkConfig> 图片水印,最多支持4个
Returns:
,用于下载等操作
- Type
- Promise
-
setCaptureVolume(volume)
-
设置麦克风采集的音量。
Parameters:
Name Type Description volume
Number 要设置的麦克风采集音量。,范围为 0(静音)到 100(声音最大)
Returns:
- Type
- Void
-
setLocalRenderMode(options)
-
设置本端视频画面大小。
Parameters:
Name Type Description options
Object 配置对象。
Properties
Name Type Argument Description width
Number 宽度。
height
Number 高度。
cut
Boolean 是否裁剪。
mediaType
String <optional>
指定设置的对象,即调整的是摄像头画面还是屏幕共享画面。默认为同时设置。
可设置为:- video:设置本端摄像头画面。
- screen:设置本端屏幕共享画面。
Returns:
- Type
- Void
-
setRemoteRenderMode(options)
-
设置远端视频画面大小。
Parameters:
Name Type Description options
Object 配置对象
Properties
Name Type Argument Description width
Number 宽度
height
Number 高度
cut
Boolean 是否裁剪
mediaType
String <optional>
指定设置的对象,即调整的是摄像头画面还是屏幕共享画面。默认为同时设置。
可设置为:- video:设置远端摄像头画面。
- screen:设置远端屏幕共享画面。
Returns:
- Type
- Void
-
setScreenProfile(options)
-
设置屏幕共享属性。
Parameters:
Name Type Description options
Object 配置参数
Properties
Name Type Argument Description resolution
String <optional>
设置本端屏幕共享分辨率:WebRTC2.VIDEO_QUALITY_480p、WebRTC2.VIDEO_QUALITY_720p、WebRTC2.VIDEO_QUALITY_1080p
frameRate
String <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 options
Object 配置参数。
Properties
Name Type Argument Description audio
Boolean <optional>
是否订阅音频流。
video
Boolean <optional>
是否订阅视频流。
screen
Boolean <optional>
是否订阅屏幕共享流(辅流)。默认为 true,即订阅辅流形式的屏幕共享。
highOrLow
Number <optional>
0 表示小流,1 表示大流。
Returns:
- Type
- Null
-
setVideoProfile(options)
-
设置视频属性。
Parameters:
Name Type Description options
Object 配置参数
Properties
Name Type Argument Description resolution
Number <optional>
设置本端视频分辨率:WebRTC2.VIDEO_QUALITY_180p、WebRTC2.VIDEO_QUALITY_480p、WebRTC2.VIDEO_QUALITY_720p、WebRTC2.VIDEO_QUALITY_1080p
frameRate
Number <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#startAudioMixing
Stream#stopAudioMixing
Stream#pauseAudioMixing
Stream#resumeAudioMixing
Stream#adjustAudioMixingVolume
Stream#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 options
Object 参数对象
Properties
Name Type Description audioFilePath
String 必须,云端音频文件路径
loopback
String 可选,是否循环播放,缺省为false,表示播放一次就结束(这里如果是false,则cycle参数不生效)
replace
String 可选,是否替换麦克风采集的音频数据,缺省为false
cycle
Number 可选,循环的次数,需要loopback参数置为true(如果想无限循环,cycle设置为0,loopback设置为true),缺省为0,如果loopback为true,表示无限循环,如果loopback为false,该参数不生效
playStartTime
Number 可选,设置音频文件开始播放的位置,单位为 s。缺省设为 0,即从头开始播放
volume
function 可选,设置伴音文件的音量
auidoMixingEnd
function 可选,伴音文件播放完成的通知反馈(正常停止伴音或关掉通话获取其他原因停止伴音不会触发)
Returns:
- Type
- Promise
-
startMediaRecording(param)
-
开启单人视频录制。
Parameters:
Name Type Description param
Object 参数对象。
Properties
Name Type Description type
String 指定录制的音视频流类型。可设置为:
- audio:仅录制音频流。
- video:同时录制音频流和摄像头视频流。
- screen:同时录制音频流和屏幕共享流(辅流)。
reset
Boolean 如果之前的录制视频未下载,是否重置,默认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 options
Object 参数对象
Properties
Name Type Description recordId
String 录制id,可以通过listMediaRecording接口获取
Returns:
- Type
- Promise
-
switchDevice(type, deviceId)
-
切换媒体输入设备,已经发布的流,切换后不用重新发流
Parameters:
Name Type Description type
String 设备的类型,"audio": 音频输入设备,"video": 视频输入设备
deviceId
String 设备的 ID,可以通过 getDevices 方法获取。获取的 ID 为 ASCII 字符,字符串长度大于 0 小于 256 字节。
Returns:
- Type
- Promise
-
takeSnapshot(options)
-
截取指定用户的视频画面,文件保存在浏览器默认路径下。
Parameters:
Name Type Description options
Object 配置参数
Properties
Name Type Argument Description name
String 截取的图片的保存名称(默认是uid-1的格式名称)
mediaType
String <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