[prg] tts в android
Всех приветствую. Я попытался реализовать программу,проговаривающую
нужный мне текст,но,как оказалось,при включённом talkback tts не всегда
говорит. Но ведь в Дусе и в osmand tts работает даже при выключенном
talkback. какой код и куда нужно вставить,чтобы программа говорила tts
при включённом talkback? Ниже будет код моей программы. Кнопку я делал
через xml файл. Заранее благодарю всех за помощь.
package com.example.test;
import java.util.HashMap;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.speech.tts.UtteranceProgressListener;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity implements OnInitListener
{
private TextToSpeech tts=null;
private HashMap <String, String> ttsMap;
private Context context;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
context=this;
ttsMap = new HashMap<String, String>();
tts = new TextToSpeech(this, this);
tts.setOnUtteranceProgressListener(progressListener);
setContentView(R.layout.activity_main);
}
@Override
public void onInit(int status)
{
if (status==TextToSpeech.ERROR) {
tts=null;
Toast.makeText(context, "У Вас не установлен синтезатор речи",
Toast.LENGTH_LONG).show(); }
else {
tts.setSpeechRate(1);
tts.speak("добро пожаловать в приложение function_recognizer",
TextToSpeech.QUEUE_FLUSH, ttsMap);
} }
UtteranceProgressListener progressListener=new UtteranceProgressListener() {
@Override
public void onDone(String arg0) {
}
@Override
public void onError(String arg0) {
Toast.makeText(null, "У Вас не установлен синтезатор речи",
Toast.LENGTH_LONG).show();
}
@Override
public void onStart(String arg0)
{ }
};
@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);
}
public void Button1 (View view)
{
tts.setSpeechRate(1);
tts.speak("тестируем tts при нажатии кнопки", TextToSpeech.QUEUE_FLUSH,
ttsMap);
}
@Override
protected void onDestroy() {
super.onDestroy();
tts.shutdown();
tts=null;
} }