在Android中的传入呼叫期间,文本到语音不起作用

时间:2014-04-08 18:41:04

标签: android text-to-speech

我希望在来电期间播放文字序列作为语音,将铃声降低几秒钟。我已经通过广播接收器的意图将字符串发送到另一个类文件。 如果我在通话期间使用吐司但语音不播放,则会显示该文本。 我的类文件中的文本到语音代码是: -

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 个答案:

答案 0 :(得分: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);
            }
        }
    });