0%

Chrome麦克风授权

使用 127.0.0.1、localhost及 https 可以正常获取麦克风权限。如果使用的是局域网 IP 地址则需要设置信任的地址

信任的地址配置

chrome://flags/#unsafely-treat-insecure-origin-as-secure

image-20250918103132601

启用后需要重启 Chrome 浏览器,重启后就能成功调起麦克风。

如何设置麦克风设备

  1. 打开浏览器 设置:chrome://settings/。
  2. 依次选择隐私和安全网站设置
  3. 在“权限”下,选择麦克风
  4. 如需选择默认麦克风,请选择向下箭头 。
image-20250928110414005

查看当前设置的麦克风设备:

1
2
3
4
5
6
7
8
9
10
11
navigator.mediaDevices.getUserMedia({ audio: true })
.then((stream) => {
// 获取音频轨道
const audioTracks = stream.getAudioTracks();
if (audioTracks.length > 0) {
const audioTrack = audioTracks[0];
const audioSettings = audioTrack.getSettings();
console.log("音频设备 ID:", audioSettings.deviceId);
console.log("音频设备标签:", audioTrack.label); // 可能为空(需用户授权)
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 首先请求用户权限(这是必要的,否则设备标签可能被隐藏)
navigator.mediaDevices.getUserMedia({ audio: true })
.then(stream => {
// 即使我们不需要流,也需要请求权限才能获取设备标签
// 获取设备列表
return navigator.mediaDevices.enumerateDevices();
})
.then(devices => {
// 筛选出音频输入设备
const audioInputs = devices.filter(device => device.kind === 'audioinput');

console.log('可用的音频输入设备:', audioInputs);

// 处理设备列表
audioInputs.forEach(device => {
console.log(`设备ID: ${device.deviceId}`);
console.log(`设备标签: ${device.label || '未命名设备'}`);
console.log(`设备类型: ${device.kind}`);
console.log('-------------------');
});

// 如果你想停止获取的音频流(因为我们只需要权限)
if (stream) {
stream.getTracks().forEach(track => track.stop());
}
})
.catch(error => {
console.error('获取设备时出错:', error);
});