以语音合成方法为例,我在自己的应用程序中需要调用它的合成函数,所以在自己的类里调用了它的synthetizeInSilence()方法。如下
/**
* 使用SpeechSynthesizer合成语音,不弹出合成Dialog.
* @param
*/
private void synthetizeInSilence() {
if (null == mSpeechSynthesizer) {
//创建合成对象.
mSpeechSynthesizer = SpeechSynthesizer.createSynthesizer(this);
}
//设置合成发音人.
String role = mSharedPreferences.getString(
getString(R.string.preference_key_tts_role),
getString(R.string.preference_default_tts_role));
//设置发音人
mSpeechSynthesizer.setParameter(SpeechConstant.VOICE_NAME, role);
//获取语速
int speed = mSharedPreferences.getInt(
getString(R.string.preference_key_tts_speed),
50);
//设置语速
mSpeechSynthesizer.setParameter(SpeechConstant.SPEED, ""+speed);
//获取音量.
int volume = mSharedPreferences.getInt(
getString(R.string.preference_key_tts_volume),
50);
//设置音量
mSpeechSynthesizer.setParameter(SpeechConstant.VOLUME, ""+volume);
//获取语调
int pitch = mSharedPreferences.getInt(
getString(R.string.preference_key_tts_pitch),
50);
//设置语调
mSpeechSynthesizer.setParameter(SpeechConstant.PITCH, ""+pitch);
//获取合成文本.
Editable editable = mSourceText.getText();
String source = null;
if (null != editable) {
source = editable.toString();
}
//进行语音合成.
mSpeechSynthesizer.startSpeaking(source, this);
showTip(String.format(getString(R.string.tts_toast_format),0 ,0));
}package dmcore.outputs;
import android.app.Application;
import android.content.Context;
import com.iflytek.cloud.speech.SpeechError;
import com.iflytek.cloud.speech.SpeechSynthesizer;
import com.iflytek.cloud.speech.SynthesizerListener;
public class MyOutput extends Application implements SynthesizerListener{
//缓存对象.
//private SharedPreferences mSharedPreferences;
//合成对象.
private SpeechSynthesizer mSpeechSynthesizer;
private static Context context;
public void onCreate() {
super.onCreate();
MyOutput.context = getApplicationContext();
}
public static Context getAppContext() {
return MyOutput.context;
}
//-------------------------------------------------------------------------
// Constructor
//-------------------------------------------------------------------------
public MyOutput(){
}
public void SetParameter(){
if (mSpeechSynthesizer == null) {
//创建合成对象.
mSpeechSynthesizer = SpeechSynthesizer.createSynthesizer(context);
}
/*//设置合成发音人.
String role = mSharedPreferences.getString(
getString(R.string.preference_key_tts_role),
getString(R.string.preference_default_tts_role));
//设置发音人
mSpeechSynthesizer.setParameter(SpeechConstant.VOICE_NAME, role);
//获取语速
int speed = mSharedPreferences.getInt(
getString(R.string.preference_key_tts_speed),
50);
//设置语速
mSpeechSynthesizer.setParameter(SpeechConstant.SPEED, ""+speed);
//获取音量.
int volume = mSharedPreferences.getInt(
getString(R.string.preference_key_tts_volume),
50);
//设置音量
mSpeechSynthesizer.setParameter(SpeechConstant.VOLUME, ""+volume);
//获取语调
int pitch = mSharedPreferences.getInt(
getString(R.string.preference_key_tts_pitch),
50);
//设置语调
mSpeechSynthesizer.setParameter(SpeechConstant.PITCH, ""+pitch);*/
}
/**
* 使用SpeechSynthesizer合成语音,不弹出合成Dialog.
* @param
*/
public void synthetizeInSilence(String SourceText) {
//进行语音合成.
mSpeechSynthesizer.startSpeaking(SourceText, this);
}
@Override
public void onBufferProgress(int arg0, int arg1, int arg2, String arg3) {
// TODO Auto-generated method stub
}
@Override
public void onCompleted(SpeechError arg0) {
// TODO Auto-generated method stub
}
@Override
public void onSpeakBegin() {
// TODO Auto-generated method stub
}
@Override
public void onSpeakPaused() {
// TODO Auto-generated method stub
}
@Override
public void onSpeakProgress(int arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onSpeakResumed() {
// TODO Auto-generated method stub
}
}原文:http://blog.csdn.net/houxingding/article/details/24302125