在我的应用程序中,我使用的是 Fragments 和 viewpager。我有一个单独的文本到语音类,它扩展了 Activity 但没有布局。我已经在 FragmentAdapter 类中实例化了这个类,它根据屏幕上当前的活动调用说话函数。但是,文本到语音的构造函数导致应用程序崩溃,从而导致强制关闭。我已经发现文本到语音构造函数中的罪魁祸首是上下文,尽管我同时使用了 getApplicationContext() 和 className.this 但它仍然使应用程序崩溃。这是代码:
public class textToSpeech extends Activity{
TextToSpeech tts=null;
public textToSpeech()
{
Log.d("text to speech", "constructor");
tts = new TextToSpeech(textToSpeech.this , new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
Log.d("text to speech", "init");
if(status != TextToSpeech.ERROR)
{
Log.d("text to speech", "condition");
tts.setPitch(1.1f);
tts.setSpeechRate(0.4f);
tts.setLanguage(Locale.US);
}
}
});
}
请指导我解决这个问题。
我已经使用 startActivity() 启动了文本到语音的活动,但是当我在文本到语音类中调用该方法时,我仍然收到 NullPointerException。(我已经将文本实例化为语音类)
tts.SpeakText("hello world"); // in fragmentPagerAdapter exception class
在文本到语音类
public void SpeakText (String text)
{
Log.d("text to speech", "speaking");
if(text!=null)
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
问候