Text To Speech is not working in Ginger Bread - Android 2.3 -


i developing text speech application. code working fine in android 4.0 ice cream sandwich , above. in android 2.3 ginger bread no voice coming without error. voice coming in emulator not in phone. have checked app on 2 handsets:

  1. xperia x10 ,
  2. galaxy pop mini having ginger bread.

here's code:

import java.util.locale; import android.view.viewgroup; import android.app.activity; import android.content.context; import android.graphics.typeface; import android.os.bundle; import android.speech.tts.texttospeech; import android.speech.tts.texttospeech.oninitlistener; import android.util.log; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.view.onclicklistener; import android.widget.adapterview; import android.widget.adapterview.onitemselectedlistener; import android.widget.arrayadapter; import android.widget.edittext; import android.widget.imagebutton; import android.widget.spinner; import android.widget.textview; import android.widget.toast;  public class tts extends activity implements oninitlistener{      context context;     private texttospeech tts;     private imagebutton playtts,stoptts,cleartts;     private edittext texttts;     private spinner selectvoices;     public static int spinnerpos;     private string spinnerlist[] = {"...select voices..."," voice 1"," voice 2"," voice 3"};      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.tts);          tts = new texttospeech(this, this);          selectvoices = (spinner) findviewbyid(r.id.spinner);          playtts = (imagebutton) findviewbyid(r.id.b_playtts);         stoptts = (imagebutton) findviewbyid(r.id.b_stoptts);         cleartts = (imagebutton) findviewbyid(r.id.b_cleartts);          texttts = (edittext) findviewbyid(r.id.et_entertext);          typeface  mface = typeface.createfromasset(this.getassets(),"mvboli.ttf");         texttts.settypeface(mface);          arrayadapter<string> aa = new arrayadapter<string>(tts.this, r.layout.spinnerlayout, spinnerlist){              public view getview(int position, view convertview, viewgroup parent) {                     view v = super.getview(position, convertview, parent);                      typeface externalfont=typeface.createfromasset(getassets(), "mvboli.ttf");                     ((textview) v).settypeface(externalfont);                      return v;             }               public view getdropdownview(int position,  view convertview,  viewgroup parent) {                      view v =super.getdropdownview(position, convertview, parent);                      typeface externalfont=typeface.createfromasset(getassets(), "mvboli.ttf");                     ((textview) v).settypeface(externalfont);                      return v;             }     };         selectvoices.setadapter(aa);          // spinner on item click event         selectvoices.setonitemselectedlistener(new onitemselectedlistener() {              @override             public void onitemselected(adapterview<?> parent, view view, int position, long id) {                 // todo auto-generated method stub                 spinnerpos = position;             }              @override             public void onnothingselected(adapterview<?> arg0) {                 // todo auto-generated method stub              }         });          // button on click event         playtts.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view v) {                  switch (spinnerpos) {                 case 0:                     toast.maketext(getbasecontext(), "please choose voice type !", toast.length_short).show();                     break;                  case 1:                     tts.setpitch(1.0f);                     speakout();                     log.d("texttospeech","in onclick1");                     break;                  case 2:                     tts.setpitch(0.2f);                     speakout();                     log.d("texttospeech","in onclick2");                     break;                  case 3:                     //pitch = 0.2f;                     tts.setpitch(2.0f);                     speakout();                     log.d("texttospeech","in onclick3");                     break;                  default:                     break;                 }             }          });          // clear button click event         stoptts.setonclicklistener(new onclicklistener() {              @override             public void onclick(view v) {                 tts.stop();              }         });          // button click event         cleartts.setonclicklistener(new onclicklistener() {              @override             public void onclick(view v) {                 // todo auto-generated method stub                 texttts.settext("");            }         });     }      @override     public void ondestroy() {         // don't forget shutdown tts!         if (tts != null) {             tts.stop();             tts.shutdown();         }         super.ondestroy();     }       private void speakout() {          string text = texttts.gettext().tostring();         log.d("texttospeech","in spkout");          tts.speak(text,tts.queue_flush,null);     }      @override     public void oninit(int status) {         // todo auto-generated method stub         if (status == texttospeech.success) {              int result = tts.setlanguage(locale.getdefault());              if (result == texttospeech.lang_missing_data                     || result == texttospeech.lang_not_supported) {                 log.e("tts", "this language not supported");             }              else{                 if (tts.islanguageavailable(locale.getdefault()) == texttospeech.lang_available || tts.islanguageavailable(locale.getdefault()) == texttospeech.lang_country_available)                     tts.setlanguage(locale.getdefault());             }          } else {             log.e("tts", "initilization failed!");         }     }    } 

please help.

yes, there way not without user consent.

private void installvoicedata() {     intent intent = new intent(texttospeech.engine.action_install_tts_data);     intent.addflags(intent.flag_activity_new_task);     intent.setpackage("com.google.android.tts"/*replace package name of target tts engine*/);     try {         log.v(tag, "installing voice data: " + intent.touri(0));         startactivity(intent);     } catch (activitynotfoundexception ex) {         log.e(tag, "failed install tts data, no acitivty found " + intent + ")");     } } 

originally posted here


Comments

Popular posts from this blog

php - Passing multiple values in a url using checkbox -

java - nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet Hibernate+SpringMVC -

sql - Postgresql tables exists, but getting "relation does not exist" when querying -