2011-10-04 164 views
1

我在Android的初学者,我有android的TTS问题TTS,日食中写道日志:问题与安卓(服务未启动)

10-04 15:27:49.851: ERROR/TextToSpeech.java - 说话(19515):服务 未启动

有我的代码,都来自例如:

package ru.andr.dictu; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.speech.tts.TextToSpeech; 
import android.view.View; 

/** 
* This class demonstrates checking for a TTS engine, and if one is 
* available it will spit out some speak based on what is in the 
* text field. 
*/ 
public class speak extends Activity implements TextToSpeech.OnInitListener 
{ 
    public static String text = "some text"; 
    private TextToSpeech mTts; 
    // This code can be any value you want, its just a checksum. 
    private static final int MY_DATA_CHECK_CODE = 1234; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.speech); 
     // Fire off an intent to check if a TTS engine is installed 
     Intent checkIntent = new Intent(); 
     checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); 
     startActivityForResult(checkIntent, MY_DATA_CHECK_CODE); 
    } 
    public void speakClicked(View v) 
    { 

    } 
    public void onInit(int i) 
    { 

    } 
    public void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     if (requestCode == MY_DATA_CHECK_CODE) 
     { 
      if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) 
      { 
       // success, create the TTS instance 
       mTts = new TextToSpeech(this, this); 
       //try to speak 
       LetsSpeak(); 
      } 
      else 
      { 
       // missing data, install it 
       Intent installIntent = new Intent(); 
       installIntent.setAction(
         TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA); 
       startActivity(installIntent); 
      } 
     } 
    } 
    @Override 
    public void onDestroy() 
    { 
     // Don't forget to shutdown! 
     if (mTts != null) 
     { 
      mTts.stop(); 
      mTts.shutdown(); 
     } 
     super.onDestroy(); 
    } 

    public void LetsSpeak() { 
     // TODO Auto-generated method stub 

     mTts.speak(text, 
       TextToSpeech.QUEUE_FLUSH, // Drop all pending entries in the playback queue. 
       null); 
    } 
} 

回答

0

好,改类名 - 问题得到解决。

和:

public void onInit(int i) 
{ 
    if (i==mTts.SUCCESS) 
    { 
     mySayFunc(); 
     mTts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener(){ 

      @Override 
      public void onUtteranceCompleted(String utId) { 
       // TODO Auto-generated method stub 
       if (utId.indexOf("ok")!=-1) 
       finish(); 
      } 

     }); 
    } 
}