音频设备管理
更新时间: 2024/09/18 16:26:13
在音频场景中,您可能需要根据实际的场地情况选择采用音频的采集和播放设备,例如在室内场景中选用听筒进行音频播放。NERTC SDK 支持自由切换音频设备。
初始化时指定音频采集设备
-
通过 getDevices 获取设备列表。
-
选择开启指定的设备。
-
启动选中的设备。
js// 此处以同时启动麦克风与摄像头设备示例
NERTC.getDevices().then((devices)=>{
var audioDevices = devices.audioIn; //数组,麦克风设备列表
var videoDevices = devices.video; //数组,摄像头设备列表
var uid = Math.floor(Math.random()*10000);
var selectedMicrophoneId = audioDevices[0].deviceId;
var selectedCameraId = videoDevices[0].deviceId;
var localStream = NERTC.createStream({
uid: uid,
audio: true,
microphoneId: selectedMicrophoneId, //指定要开启的mic
video: true,
cameraId: selectedCameraId, //指定要开启的camera
screen: false
});
localStream.init().then(()=>{
//用于播放视频的div元素
let div = document.getElementById('local-container')
localStream.play(div)
//设置播放的视频容器大小
localStream.setLocalRenderMode({
width: 180,
height: 150,
cut: true
})
setInterval(function(){
console.log(`获取mic采集的音量: ${localStream.getAudioLevel()}`);
}, 1000);
})
})
切换音频采集设备
在初始化本地音频流之后,动态切换音频采集设备
js//rtc.localStream.init()后
rtc.localStream
.switchDevice('audio', microphoneId) //设备的 ID,可以通过 getDevices 方法获取
.then(() => {
console.warn('切换mic成功')
})
.catch((err) => {
console.warn('切换mic失败: ', err)
})
指定音频播放设备
在通话时切换扬声器。在播放订阅流之前或之后都可以调用该方法
js//在播放订阅流之前调用
const audioOutputDevice = (await NERTC.getSpeakers())[0]
console.log("设置扬声器为", audioOutputDevice.label, audioOutputDevice.deviceId)
rtc.client.on('stream-subscribed', (evt) => {
var remoteStream = evt.stream
console.warn('订阅别人的流成功的通知: ', remoteStream.streamID, 'mediaType: ', evt.mediaType)
remoteStream.setAudioOutput(audioOutputDevice.deviceId)
remoteStream.play(view, playOptions)
})
//在播放订阅流之后调用
await remoteStream.play(view, playOptions)
remoteStream.setAudioOutput(deviceId)
API参考
方法 | 功能描述 |
---|---|
getMicrophones | 获取麦克风列表 |
getSpeakers | 获取扬声器列表 |
getDevices | 获取所有设备列表 |
此文档是否对你有帮助?