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