Android Сервис TextToSpeech - PullRequest
0 голосов
/ 18 марта 2020

Здравствуйте, я работаю над приложением, которое считывает входящее сообщение с помощью сервиса, оно работает нормально, но изменение скорости и шага 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();
}
}
...