windwos和linux下获取当前使用的麦克风型号
需求是浏览器获取当前麦克风型号,对不支持的型号做限制,
最开始想的通过js后去麦克风型号,但是在windows下测试的没问题,到linux系统下就不行了
历览器输入以下地址可以看到支持的硬件信息
chrome://media-internals/

在windows下可以看到支持的型号,
但是在linux下看不到

windwo下需要使用 sounddevice 库,linux下使用 pulsectl
import sys
def get_windows_active_mic():
"""Windows 系统:通过 COM/pycaw 接口精确获取当前默认输入的麦克风型号"""
import sounddevice as sd
devices = sd.query_devices()
default_in_id = sd.default.device[0]
# print("默认录音设备ID:", default_in_id)
# print("默认录音设备ID:", devices[default_in_id])
return devices[default_in_id]['name']
def get_active_mic_pulsectl():
import pulsectl
try:
with pulsectl.Pulse('get-mic-script') as pulse:
# 1. 获取默认 Source 的名称
server_info = pulse.server_info()
default_source_name = server_info.default_source_name
# 2. 遍历 Source 寻找描述信息
for source in pulse.source_list():
if source.name == default_source_name:
# 获取 friendly 名称
desc = source.proplist.get('device.description') or source.description
return desc
return "未找到设备"
except Exception as e:
return f"获取失败: {e}"
def get_active_mic():
print(sys.platform)
"""根据操作系统自动路由"""
if sys.platform.startswith("win"):
return get_windows_active_mic()
elif sys.platform.startswith("linux"):
return get_active_mic_pulsectl()
else:
return f"暂不支持的操作系统: {sys.platform}"
if __name__ == "__main__":
print("当前正在使用的麦克风型号:", get_active_mic())





