大家好,我在我的项目中使用texttospeech,我在活动类中尝试了此代码,它工作正常,但在服务类中,它工作不正常,我在项目中使用文本进行语音转换,但抛出此错误。谁能告诉我我必须做些什么才能使其正常工作...
代码....
public class CallerService extends Service implements
TextToSpeech.OnInitListener {
String number;
private TextToSpeech tts;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
tts = new TextToSpeech(this, this);
}
@Override
@Deprecated
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
number = intent.getStringExtra("phnumber");
fetchContacts();
}
@Override
public void onInit(int status) {
// TODO Auto-generated method stub
if (status != TextToSpeech.ERROR)
{
tts.setLanguage(Locale.UK);
}
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
public void fetchContacts() {
tts.speak("kd arjit", TextToSpeech.QUEUE_FLUSH,
null);}
}
}
Logcat是...
04-07 12:27:00.028: I/TextToSpeech.java(5948): initTts() successfully bound to service
04-07 12:27:01.038: D/dalvikvm(5948): GC_EXPLICIT freed 83K, 45% free 3123K/5639K, `external 743K/1036K, paused 54ms
04-07 12:27:02.158: I/Contact Name:(5948): kd arjit
04-07 12:27:02.168: I/TextToSpeech.java - speak(5948): speak text of length 8
04-07 12:27:02.168: E/TextToSpeech.java - speak(5948): service isn't started
04-07 12:27:02.298: D/dalvikvm(5948): GC_CONCURRENT freed 375K, 48% free 3142K/5959K, external 758K/1036K, paused 2ms+4ms
04-07 12:27:02.308: W/CursorWrapperInner(5948): Cursor finalized without prior close()
您的logcat并没有真正显示任何错误,但问题是您致电:
fetchContacts();
前 :
public void onInit(int status)
成功执行。tts.speak
仅在onInit
执行成功的回调后才可以调用。所以你应该把你的fetchContacts();
里面onInit
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句