您好,我正在开发一个使用服务读取传入消息的应用程序,它工作正常,但是更改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();
}
}