Button mit Pause Funktion!

  • Antworten:6
Basti Steer
  • Forum-Beiträge: 37

24.03.2014, 19:08:34 via Website

Hey Leute,
ist es möglich einem Button die Funktion Play/Pause zu zuweisen?

In meiner App wird mit einer Methode verschiedene Methoden der OK aufgerufen, diese durchlaufen dann ihre jeweiligen Code und haben eine TextToSpeech-Funktion. Wie kann ich hier jetzt einen Pause Button-einfügen? Mir ist klar wie ich einen Button mit ClickListener setze, aber wie implementiere ich, dass der gesprochene Text pausiert und dort dann wieder fortgesetzt werden kann?

Pseudo-Code:

Methodenaufruf() {
Methode1(); }

Methode1() {
tts.speak("Übung Lorem ipsum blablaba, TextToSpeech.QUEUE_ADD, null);
tts.speak("Übung ! Mach dich bereit!", TextToSpeech.QUEUE_ADD, null);
tts.speak("lalalalalalal", TextToSpeech.QUEUE_ADD, null); }

Antworten
impjor
  • Forum-Beiträge: 1.793

24.03.2014, 19:54:23 via Website

TTS bietet diese Funktion eigentlich nicht an.
Du kannst aber das Audio von TTS in eine Datei speichern und dann diese Datei über einen MediaPlayer (mit der Funktion pause) auch abspielen. Sieh dir das mal an: http://stackoverflow.com/questions/4970204/how-to-pause-android-speech-tts-texttospeech

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Basti Steer
  • Forum-Beiträge: 37

24.03.2014, 20:12:39 via Website

Kann ich die ganze activity bzw methode zum stehen bringen?
Es geschieht ja nicht nur TTS in meiner Methode, es wird auch eine for-Schleife durchlaufen, die die Methode nach x-Sekunden beendet.

Antworten
impjor
  • Forum-Beiträge: 1.793

24.03.2014, 21:29:52 via App

Nein, dass ist nicht möglich. Du musst immer selber überprüfen, ob gerade pausiert wird (z.B. über eine boolean Variabel) und dementsprechend dann nichts tun oder andere Sachen ausführen... kommt auf den Kontext an.

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Basti Steer
  • Forum-Beiträge: 37

24.03.2014, 23:38:09 via Website

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
onPause();
}
else {
onResume();
}


}


Hab grade versucht das Ganze iwie hinzubekommen, warum würde so etwas nicht gehen?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

25.03.2014, 07:08:22 via App

Was muss denn Gestoppt werden?
Wieso über onPause du brauchst eine eigene Funktion dafür

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Basti Steer
  • Forum-Beiträge: 37

25.03.2014, 12:20:24 via Website

1public void Crunch(int anzahl) {
2
3
4 setContentView(R.layout.crunch);
5
6 //Start und Stop Button
7 t=(ToggleButton) findViewById(R.id.toggleButton1);
8 t.setOnCheckedChangeListener(this);
9 l=(LinearLayout)findViewById(R.id.layout);
10
11
12 tts.speak("In 10 Sekunden geht`s los!", TextToSpeech.QUEUE_ADD, null);
13 tts.playSilence(9000, TextToSpeech.QUEUE_ADD, null);
14 tts.speak("Los gehts!", TextToSpeech.QUEUE_ADD, null);
15 tts.speak("Mache" + anzahl + "Wiederholungen!" , TextToSpeech.QUEUE_ADD, null);
16
17 for (int i = 1; i < anzahl+1; i++) {
18
19 while (pausegedrückt==true) {
20 tts.playSilence(1000, TextToSpeech.QUEUE_ADD, null);
21 }

22 String str = String.valueOf(i);
23 tts.speak(str, TextToSpeech.QUEUE_ADD, null);
24 tts.playSilence(3000, TextToSpeech.QUEUE_ADD, null); }
25
26
27 tts.speak("Übung beendet!", TextToSpeech.QUEUE_ADD, null);
28
29
30 }
31
32//Meine Button-Funktion
33@Override
34 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
35 if (isChecked) {
36
37 pausegedrückt=true;
38 } else {
39
40 pausegedrückt=false;
41 }
42
43 }


ALso so in etwa sieht mein Code aus, nun will ich zu jeder Übung eine Pausefunktion hinzufügen. Wieso funktioniert meine Methode nicht?

— geändert am 25.03.2014, 13:31:56

Antworten