在渲染层获取,不要在主进程获取
1、创建一个获取系统音频信息的方法
export function getSystemAudio() {
// 获取系统音频输出列表
navigator.mediaDevices
.enumerateDevices()
.then((devices) => {
let audiooutputList = devices.filter((device) => device.kind === 'audiooutput') // 系统所有音频列表
let deviceId = '' // 系统默认音频id
for (let i in audiooutputList) {
if (audiooutputList[i].deviceId === 'default') {
deviceId = audiooutputList[i].deviceId
break
}
}
// 自行处理存储
})
.catch((err) => {
console.error(`错误发生 ${err.name}: ${err.message}`)
})
}
2、
let break_audio = new Audio() //创建一个播放器
break_audio.setSinkId(deviceId) // 切换通道
// 一定要在创建播放器之后用, 修改再次调用setSinkId即可
// setSinkId 修改的其实是new Audio的输出源,并不能修改应用所有的输出源
这是所有类型可以根据需要做筛选
// device.kind = [
// {