基本的代码配置可以先参考以下博客:
http://blog.csdn.net/zhengyikuangge/article/details/74937770
以下代码还是从讯飞官方提供的SDK中筛选出来的
public class MainActivity extends Activity {
// 语音合成对象
private SpeechSynthesizer mTts;
// 播放进度
private int mPercentForPlaying = 0;
// 缓冲进度
private int mPercentForBuffering = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化即创建语音配置对象,只有初始化后才可以使用MSC的各项服务
SpeechUtility.createUtility(MainActivity.this, SpeechConstant.APPID
+ "= 595baeb7");
// 初始化合成对象
mTts = SpeechSynthesizer.createSynthesizer(MainActivity.this,
mTtsInitListener);
findViewById(R.id.bt).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String text = ((EditText) findViewById(R.id.et)).getText()
.toString();
mTts.startSpeaking(text, mTtsListener);
}
});
}
/**
* 初始化监听器。
*/
private InitListener mTtsInitListener = new InitListener() {
@Override
public void onInit(int code) {
if (code != ErrorCode.SUCCESS) {
Toast.makeText(MainActivity.this, "初始化失败,错误码:" + code,
Toast.LENGTH_LONG).show();
}
}
};
/**
* 合成回调监听。
*/
private SynthesizerListener mTtsListener = new SynthesizerListener() {
@Override
public void onSpeakBegin() {
// 开始播放
}
@Override
public void onSpeakPaused() {
// 暂停播放
}
@Override
public void onSpeakResumed() {
// 继续播放
}
@Override
public void onBufferProgress(int percent, int beginPos, int endPos,
String info) {
// 合成进度
mPercentForBuffering = percent;
}
@Override
public void onSpeakProgress(int percent, int beginPos, int endPos) {
// 播放进度
mPercentForPlaying = percent;
}
@Override
public void onCompleted(SpeechError error) {
}
@Override
public void onEvent(int eventType, int arg1, int arg2, Bundle obj) {
}
};
}