package com.test.androidtest;
import java.util.Locale;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.widget.Toast;
/**
* 文本转语音测试
*/
public class TextToSpeakActivity extends Activity {
int TTS_DATA_CHECK = 1;
boolean ttsIsInit = false;
TextToSpeech tts = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_shap_gradient);
//通过启动一个活动来检查TTS库
Intent intent = new Intent(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(intent, TTS_DATA_CHECK);
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode == TTS_DATA_CHECK){
//如果已安装了语音数据
if(resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS){
Toast.makeText(this, "已安装了语音数据", Toast.LENGTH_SHORT);
tts = new TextToSpeech(this, new TextToSpeech.OnInitListener(){
@Override
public void onInit(int status) {
if(status == TextToSpeech.SUCCESS){
Toast.makeText(TextToSpeakActivity.this, "语音数据初始化完毕", Toast.LENGTH_SHORT);
ttsIsInit = true;
//如果支持英式英语,则设置成英式英语。
if(tts.isLanguageAvailable(Locale.UK) >= 0)
tts.setLanguage(Locale.UK);
tts.setPitch(0.8f);//设置音高
tts.setSpeechRate(1.1f);//设置音速
speak();//说话
}
}
});
}else{
Toast.makeText(this, "安装语音数据", Toast.LENGTH_SHORT);
//安装语音数据
Intent intentVoice = new Intent(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivityForResult(intentVoice, TTS_DATA_CHECK);
}
}
}
private void speak(){
if(tts != null && ttsIsInit){
tts.speak("Hello, Android", TextToSpeech.QUEUE_ADD, null);
}
}
@Override
public void onDestroy(){
if(null != tts){
tts.stop();//停止
tts.shutdown();//释放tts资源
}
super.onDestroy();
}
}