package
com.example.voiceandroidtts;
import com.iflytek.speech.ErrorCode;
import com.iflytek.speech.ISpeechModule;
import com.iflytek.speech.InitListener;
import com.iflytek.speech.SpeechSynthesizer;
import com.iflytek.speech.SynthesizerListener;
import android.support.v7.app.ActionBarActivity;
import
android.support.v4.app.Fragment;
import
android.os.Bundle;
import
android.os.RemoteException;
import
android.view.LayoutInflater;
import
android.view.Menu;
import
android.view.MenuItem;
import
android.view.View;
import
android.view.ViewGroup;
import
android.widget.Button;
public
class MainActivity extends
ActionBarActivity {
// 语音合成对象
private
SpeechSynthesizer mTts;
private
Button btn;
@Override
protected
void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if
(savedInstanceState == null ) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new
PlaceholderFragment()).commit();
}
// 初始化合成对象
mTts = new
SpeechSynthesizer( this , mTtsInitListener);
}
/**
* 初期化监听。
*/
private
InitListener mTtsInitListener = new
InitListener() {
@Override
public
void onInit(ISpeechModule arg0, int
code) {
if
(code == ErrorCode.SUCCESS) {
mTts.startSpeaking( "我叫王五,你呢?!!!or i love you!!" , mTtsListener);
((Button) findViewById(R.id.btn)).setEnabled( true );
}
}
};
private
void onAction(View v) {
mTts.startSpeaking( "I love you!!!" , mTtsListener);
}
/**
* 合成回调监听。
*/
private
SynthesizerListener mTtsListener = new
SynthesizerListener.Stub() {
@Override
public
void onBufferProgress( int
progress) throws
RemoteException {
// showTip("onBufferProgress :" + progress);
}
@Override
public
void onCompleted( int
code) throws
RemoteException {
showTip( "onCompleted code ="
+ code);
}
@Override
public
void onSpeakBegin() throws
RemoteException {
showTip( "onSpeakBegin" );
}
@Override
public
void onSpeakPaused() throws
RemoteException {
showTip( "onSpeakPaused." );
}
@Override
public
void onSpeakProgress( int
progress) throws
RemoteException {
showTip( "onSpeakProgress :"
+ progress);
}
@Override
public
void onSpeakResumed() throws
RemoteException {
showTip( "onSpeakResumed" );
}
};
private
void showTip( final
String str) {
runOnUiThread( new
Runnable() {
@Override
public
void run() {
}
});
}
@Override
public
boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return
true ;
}
@Override
public
boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int
id = item.getItemId();
if
(id == R.id.action_settings) {
return
true ;
}
return
super .onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public
static class PlaceholderFragment extends
Fragment {
public
PlaceholderFragment() {
}
@Override
public
View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false );
return
rootView;
}
}
}
|