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

Expo Speech在iOS端无法运行问题求助 - React Native

Expo Speech在iOS端无法运行的排查与修复方案

针对你遇到的SDK 49下expo-speech在iOS 16.4/17.0无法运行、Android正常的问题,可从以下几个方向排查修复:

1. 补全iOS权限配置

iOS对语音相关功能有权限强制要求,即使仅用于文本朗读,也需在app.json或app.config.js中添加权限声明,否则会静默失败:

{
  "expo": {
    "ios": {
      "infoPlist": {
        "NSSpeechRecognitionUsageDescription": "需要使用语音合成功能播放文本内容",
        "NSMicrophoneUsageDescription": "若需语音识别功能则添加,仅播放场景可忽略,但部分iOS版本仍需配置"
      }
    }
  }
}

2. 添加错误回调排查问题

原代码未处理错误场景,iOS端可能因未知错误触发但无反馈,建议补充onError回调定位具体问题:

Speech.speak(text, { 
    onDone: () => { 
        setIsPlaying(false); 
    },
    onError: (error) => {
        console.error('语音播放出错:', error);
        setIsPlaying(false);
    }
});

另外无需对Speech.speak使用await,该方法本身是异步触发,await不会改变其执行逻辑。

3. 修复SDK兼容问题

SDK 49的expo-speech在iOS 16+存在已知兼容bug,可尝试以下操作:

  • 清除Expo缓存:执行npx expo start --clear
  • 升级expo-speech至最新兼容版本:执行npx expo install expo-speech@latest
  • 检查项目中是否有其他音频类依赖(如expo-av)与expo-speech产生冲突,可临时移除其他音频依赖测试

4. 检查iOS系统设置

确认设备本身无功能限制:

  • 前往「设置-辅助功能-语音内容」,确保朗读相关功能处于开启状态
  • 检查设备未静音、音量正常,且无其他应用占用音频通道

内容的提问来源于stack exchange,提问作者Hasret Özkan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:53:26