文本到语音转换 - 空指针异常



我创建了一个TTS模块。它在独立的基础上完美运行,但是当我尝试将其实现为我的项目的类时,它行为异常并抛出空指针异常。

我计划实现的目标:

1) 从/res/raw 文件夹中读取文本文件。2)通过TTS将文本文件转换为语音。字符串 s 通过 BufferReader 类捕获了整个文件。

我用于TTS的代码是 -

private TextToSpeech tts;
tts.speak(s, TextToSpeech.QUEUE_FLUSH, null);
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);

错误出现在tts.speak.....线。我通过在整个代码中添加 log.d 发现了这一行。上面没有 log.d 注册的 tts.speak 代码。

请帮助我调试问题。

提前感谢一吨。

您已经演示了声明变量的过程

private TextToSpeech tts;

。并且您已经使用变量进行了演示:

tts.speak(s, TextToSpeech.QUEUE_FLUSH, null);

。但是你曾经初始化过变量吗?如果不为其分配值,它将始终具有默认值 null 。从本教程来看,您需要这样的东西(我假设您的代码在Activity中):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    tts = new TextToSpeech(this, this);
    ...
}

最新更新