New useful function bridge between HTML5 and Android to listen text from input textarea
package com.example.tts;
// here imports in Eclipse command "Source->Organize Imports"
.......
@SuppressLint({ "SetJavaScriptEnabled", "JavascriptInterface" })
public class MainActivity extends Activity implements OnInitListener {
private TextToSpeech tts;
private WebView ttsweb;
@Override
public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
}
@SuppressWarnings("deprecation")
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tts = new TextToSpeech(this, this);
ttsweb = (WebView) findViewById(R.id.webtweetsfeeds);
ttsweb.getSettings().setJavaScriptEnabled(true);
ttsweb.getSettings().setLoadWithOverviewMode(false);
ttsweb.getSettings().setUseWideViewPort(false);
ttsweb.getSettings().setBuiltInZoomControls(false);
ttsweb.getSettings().setPluginState(WebSettings.PluginState.ON);
ttsweb.getSettings().setRenderPriority(RenderPriority.HIGH);
ttsweb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
ttsweb.setWebChromeClient(new WebViewChromeClient());
ttsweb.setWebViewClient(new WebViewClient());
// bridge interface java/javascript
ttsweb.addJavascriptInterface(new WebAppInterface(this), "Android");
ttsweb.loadUrl("file:///android_asset/www/index.html");
}
final class WebAppInterface {
Context mContext;
/*My interface*/
/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}
public void ttsInput(String inputText, String setLang){
tts.setLanguage(new Locale(setLang));
Toast.makeText(getApplicationContext(), tts.toString(),
Toast.LENGTH_SHORT).show();
tts.speak(inputText, TextToSpeech.QUEUE_FLUSH, null);
}
public void ttsStop(){
if (tts != null) {
tts.stop();
// tts.shutdown();
}
}
}
public void onInit(int status) {
// TODO Auto-generated method stub
return;
}
}
// Now open html file index in asset/www main folder project Android and to add this code:
// javascript functions
function tts(){
try{
var ttsinout = document.getElementById("textarea").value;
var setLanguage = document.getElementById("setlanguage").value;
Android.ttsInput(ttfeeds, setLanguage);
} catch(e){
alert("Error Description: " + e.message);
}
}
function stoptts(){
try{
Android.ttsStop();
} catch(e){
alert("Error Description: " + e.message);
}
}
document.getElementById("ttstop").addEventListener("click", stoptts, false);
document.getElementById("tts").addEventListener("click", tts, false);
// end javascript
// start html
Nessun commento
You can leave the first : )