You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iOS/Safari中使用JavaScript Web Audio API从音频输入插孔采集音频

iOS Safari 切换音频输入源解决方案

你的测试设备(iOS 14.8.1)对应的Safari版本支持指定音频输入源,可按以下步骤实现选择耳机插孔的音频输入:

实现步骤

1. 先获取媒体权限,再枚举可用音频输入设备

所有媒体相关API必须在用户交互事件(如按钮点击)的回调中执行,否则会被Safari的安全策略拦截:

// 先调用一次getUserMedia获取麦克风权限,才能拿到设备的真实标识
await navigator.mediaDevices.getUserMedia({ audio: true });
// 枚举所有媒体设备
const devices = await navigator.mediaDevices.enumerateDevices();
// 筛选所有音频输入设备
const audioInputs = devices.filter(device => device.kind === 'audioinput');
// 遍历查找插孔对应的输入设备,label一般包含「耳机」「线路输入」等标识
const targetDevice = audioInputs.find(item => item.label.includes('耳机') || item.label.includes('Line In'));

2. 在getUserMedia中指定目标设备的deviceId

修改原有代码,加入deviceId参数锁定输入源:

return navigator.mediaDevices.getUserMedia({
    audio: {
      echoCancellation: false,
      autoGainControl: false,
      noiseSuppression: false,
      latency: 0,
      deviceId: targetDevice.deviceId // 填入选中的设备ID
    }
  })

注意事项

  • 必须运行在HTTPS环境下,本地调试可使用localhost
  • 低于iOS 14.5的系统版本不支持音频输入设备选择功能,无法使用该方案
  • 如果枚举设备时看不到插孔对应的输入源,先确认外接音频设备支持输入功能,且已正常插入设备

内容的提问来源于stack exchange,提问作者Taciano Dreckmann Perez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:15:06