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

Expo AV在iOS设备仅从听筒播放音频问题求助

iOS设备上Expo音频仅从听筒播放的问题排查与解决

核心原因

你的音频配置未明确指定输出路由为扬声器,iOS系统在未收到明确指令时,会根据当前音频会话设置自动选择输出设备——当配置中涉及录音权限(即使未实际录音),系统默认会切换到通话级别的音频路由(即听筒)。

修复方案

在Audio.setAudioModeAsync配置中添加defaultToSpeakerIOS: true,强制系统将音频输出到扬声器。同时优化其他相关配置,确保音频会话模式正确:

修改后的playSound函数:

async function playSound() {
  try {
    await Audio.setAudioModeAsync({
      allowsRecordingIOS: false,
      playsInSilentModeIOS: true,
      defaultToSpeakerIOS: true, // 强制音频从扬声器输出
      interruptionModeIOS: Audio.INTERRUPTION_MODE_IOS_DO_NOT_MIX,
      interruptionModeAndroid: Audio.INTERRUPTION_MODE_ANDROID_DO_NOT_MIX,
      shouldDuckAndroid: false,
    });
    const { sound } = await Audio.Sound.createAsync(require('./assets/beep.mp3'));
    await sound.playAsync();
  } catch (error) {
    console.error('Failed to play sound', error);
  }
}

补充排查点

  • 若修改后仍无效,检查设备是否连接蓝牙设备——蓝牙音频设备优先级高于内置扬声器,需断开蓝牙再测试。
  • 确保音频文件本身无问题,可以替换其他音频文件验证。
  • 若需要同时支持录音和播放,需在录音结束后重新切换音频路由到扬声器。

内容的提问来源于stack exchange,提问作者Pablo Salazar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:07:14