Android服务TextToSpeech

时间:2020-03-18 13:00:52

标签: java android android-studio android-service text-to-speech

您好,我正在开发一个使用服务读取传入消息的应用程序,它工作正常,但是更改TextToSpeech的速度和服务活动的音调无法正常工作。我曾经打算从MainActivity获取速度和螺距值,但是可以将其设置为TTS,但是将速度和螺距设置为相同的速度和螺距值是行不通的。我很高兴收到任何建议。谢谢

Speaker.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();
}
}

0 个答案:

没有答案