
(黄)Tapiaがお話してます。 (青)Tapiaが聞いています。
◆◇◆◇◆サンプルコード:TAPIAの状態を顔の表情で区別します◆◇◆◇◆
1) ボタンを追加する
サンプルコード「0.ボタンを追加する」を参考に作成します
2) Activityに以下処理を追加する
//■□■」「お話し中」と「聞き取り中」の表情を切り替える■□■
public class Mode2Activity extends TapiaActivity {
TapiaAnimation tapiaAnimation;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.eyes_layout);
ImageView tapiaEyes = (ImageView) findViewById(R.id.eyes);
//タピアの表情を、目をパチパチするに設定する
tapiaAnimation = new TapiaAnimation(this,tapiaEyes);
tapiaAnimation.startAnimation(TapiaAnimation.PLAIN ,true);
//タピアが話をする言語を日本語にする
TapiaApp.setCurrentLanguage(Language.LanguageID.JAPANESE);
//TTS、STTのインスタンスを取得する
ttsProvider = TapiaApp.currentLanguage.getTTSProvider();
sttProvider = TapiaApp.currentLanguage.getOnlineSTTProvider();
//目を長押ししたときにメニューに戻る
tapiaEyes.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
finish();
return false;
}
});
//タピアがご挨拶をする。
try {
ttsProvider.ask(getString(R.string.service_offerHelp1),sttProvider);//何か御用ですか
} catch (LanguageNotSupportedException e) {
e.printStackTrace();
}
}
@Override
protected void onResume() {
super.onResume();
//タピアが聞きとりした後は、タピアが「はーい」と返事をする
sttProvider.setOnRecognitionCompleteListener(new STTProvider.OnRecognitionCompleteListener() {
@Override
public void onRecognitionComplete(List list) {
try {
ttsProvider.ask("はーい",sttProvider); //はーいとしゃべる
} catch (LanguageNotSupportedException e) {
e.printStackTrace();
}
//聞いている時、目の色を青に設定する
sttProvider.setOnStateChangeListener(new STTProvider.OnStateChangeListener() {
@Override
public void onStateChange(STTProvider.State newState) {
switch (newState){
case LISTENING:
tapiaAnimation.setBackground(R.drawable.gradient_aqua);//青
break;
}
}
});
//お話している時、目の色を黄に設定する
ttsProvider.setOnStateChangeListener(new TTSProvider.OnStateChangeListener() {
@Override
public void onStateChange(TTSProvider.State newState) {
switch (newState) {
case SPEAKING:
tapiaAnimation.setBackground(R.drawable.gradient_yellow);//黄色
break;
}
}
});
}
@Override
protected void onPause() {
super.onPause();
sttProvider.stopListening();
}
}