2014-04-08 2 views
1

수신 통화 중에 음성으로 텍스트 시퀀스를 재생하여 몇 초 동안 벨소리를 낮추고 싶습니다. 문자열을 인 텐트를 통해 브로드 캐스트 수신기에서 다른 클래스 파일로 보냈습니다. 통화 중에 토스트에서 사용하지만 음성이 재생되지 않으면 텍스트가 표시됩니다. 내 클래스 파일의 음성을 텍스트 코드는 다음과 같습니다 - 당신이 말을 호출 할 때들어오는 호출 중에 Android에서 텍스트가 작동하지 않습니다.

public class callName extends Activity { 

    String call; 

    TextToSpeech tts; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Bundle extras = getIntent().getExtras(); 

     call = extras.getString("sms"); 

     tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() { 

      @Override 
      public void onInit(int status) { 
       // TODO Auto-generated method stub 
       if (status != TextToSpeech.ERROR) { 
        tts.setLanguage(Locale.US); 
       } 
      } 
     }); 

     Toast.makeText(getBaseContext(), call, Toast.LENGTH_LONG).show(); 
     tts.speak(call, TextToSpeech.QUEUE_FLUSH, null); 
    } 

} 

답변

1

TTS가 초기화되지 않았습니다, 당신은 onInit()

tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() { 

     @Override 
     public void onInit(int status) { 
      // TODO Auto-generated method stub 
      if (status != TextToSpeech.ERROR) { 
       tts.setLanguage(Locale.US); 
       tts.speak(call, TextToSpeech.QUEUE_FLUSH, null); 
      } 
     } 
    }); 
+0

감사 호안 내부에 말하는 코드를 이동해야 .. 그것은 효과가있다! – devastrix

관련 문제