导航抽屉

时间:2017-10-06 08:19:03

标签: android text-to-speech

在我的项目中,我正在使用带有碎片的Navigation抽屉。在第一个屏幕(第一个片段)中,我有一个仪表板。在第二个片段,我点击按钮时有大量文本。只有当片段回到第一个片段(仪表板)时,它才能正常工作并且停止正常。

问题:当通过在导航菜单中选择片段更改时,tts不会停止。即使我转到下一个片段,也没有播放。

我使用了onDestroy(),onPause(),onResume(),onStop()。什么都行不通。

@Override
public void onDestroy() { //same for other methods also
    super.onDestroy();
    if (tts != null) {
        tts.stop();
        tts.shutdown();
    }
}

我在片段堆栈中使用添加

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.add(R.id.container, fragment,back_stack_name);
transaction.addToBackStack(back_stack_name);
transaction.commit();

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,一旦启动了一段文字,似乎无法阻止它。

一种可能性是使用.功能来创建TTS输出的音频文件,然后您可以更好地控制播放。

另一种可能性(我已实施)是将文本分成较小的部分(我只是使用了句号UtteranceProgressListener)并使用onDone&#播放这些文章。 39; s n+1方法(当一部分完成时,播放下一部分)。它听起来是一样的,当你可以在部分n播放后不播放{{1}}部分时手动停止播放。 我知道,丑陋的解决方法。