在 android 中使用 expo-speech 不起作用并抛出异常

Using expo-speech in android doesn't work and throw exception

我正在尝试在我的 react-native 应用程序中使用 expo-speech,但在我的 Android 上出现以下错误:

[Unhandled promise rejection: Error: Encountered an exception while calling native method: Exception occurred while executing exported method speak on module ExponentSpeech: null]
- node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:155:41 in createErrorFromErrorData
- node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:104:55 in <unknown>
- ... 5 more stack frames from framework internals

代码如下:

speak = async text => {
  Speech.speak(convertHTMLstring(text), {
    language: 'he',
    pitch: '1',
    rate: '0.9',
  })
}

本机反应:0.59.8

依赖项如下:

"expo": "^35.0.0",
"expo-speech": "~7.0.0",
"react": "16.8.3",
...

相同的代码适用于 ios。

我试图寻找答案,但找不到任何答案,根据 expo 文档,它应该支持 Android: https://docs.expo.io/versions/latest/sdk/speech/

请帮忙。 谢谢。

听起来这是一个纯粹的 react-native 项目,而不是一个托管的 expo 项目,对吗?如果是这样,请务必先在您的项目中设置 react-native-unimodules:https://github.com/unimodules/react-native-unimodules

对于所有可能与他相关的人... 我发现了问题。 首先,请注意,我尝试使用希伯来语的语音。 所以:

  1. Android 没有默认的希伯来语 TTS 引擎。我必须下载并安装它。我没有找到任何免费的东西,但我找到了一个可以免费试用 7 天的东西: https://play.google.com/store/apps/details?id=es.codefactory.vocalizertts

  2. 我的代码中的选项 pitch 和 rate 不起作用(可能是因为这个引擎)并导致异常!

就是这样!