Здравствуйте, я работаю над приложением, которое считывает входящее сообщение с помощью сервиса, оно работает нормально, но изменение скорости и шага TextToSpeech при работе сервиса не работает. Я использовал намерение, чтобы получить значение скорости и шага от MainActivity, которая работает, но установка скорости и шага в TTS не работает, она остается на том же значении скорости и шага. Я рад получить любые предложения. Спасибо
Динамик. java
public class Speaker extends Service implements TextToSpeech.OnInitListener {
private TextToSpeech tts;
private boolean ready = false;
private boolean allowed = false;
float speed, pitch;
public Speaker() {
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
speed = (float) intent.getExtras().get("Speed");
pitch = (float) intent.getExtras().get("Pitch");
Log.i("Speed", String.valueOf(speed));
Log.i("Pitch", String.valueOf(pitch));
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
public Speaker(Context context){
tts = new TextToSpeech(context, this);
}
@Override
public void onInit(int status) {
if(status == TextToSpeech.SUCCESS){
tts.setLanguage(Locale.getDefault());
tts.setPitch(pitch);
tts.setSpeechRate(speed);
ready = true;
}else{
ready = false;
}
}
public void speak(String text){
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
}
public void pause(int duration){
tts.playSilence(duration, TextToSpeech.QUEUE_ADD, null);
}
public void destroy(){
tts.shutdown();
}
}