Ich will mir einen eigenen eBook Reader mit TTS bauen, weil ich bisher noch keinen sinnvollen Reader gefunden habe, der TTS unterstützt.
Die Applikation soll ganz einfach sein:
1. Ich erstelle mir eine ScrollView -> im Panel lege ich ein Label an, in das der Text geladen wird. So kann ich dann den Text rauf/runter scrollen.
2. Dieser Text soll mit TTS vorgelesen werden.
Nun zu den Feinheiten, wo ich derzeit anstehe:
1. Der zu ladende Text ist unterschiedlich lange. Wie setzte ich die InnerHight der Scrollview bzw die Height des Label korrekt, dass der Text korrekt anzeigt wird? (derzeit habe ich harccoded 10000 eingetragen - ist natürlich nicht so schön, dass am Ende des Textes dann noch ewig gescrollt werden kann)
2. Der TTS-Funktion würde ich immer einen Satz aus dem Text im Label übergeben. Kann ich irgendwie erkennen, wann der vorige Satz zu Ende gesprochen wurde? Ich weiss, dass ich mittels "TTS1.Speak (sSatz,FALSE)" mehrere Sätze "gepuffert" übergeben kann. Was mir vorschwebt ist aber, dass ich jeweils einen Satz nach dem anderen aus dem Label auslese und dem TTS übergebe. Gleichzeitig merke ich mir, welcher Satz gerade vorgelesen wird.
Wenn ich dann die TTS Funktion in einem Satz (z.B Nr. 5) abbrechen würde, so soll mein Programm erkennen, dass der Satz 5 noch nicht vollständig vorgelesen würde. Beim nächsten Programmaufruf könnte ich also bei Satz 5 weitermachen und von hier gleich zu lesen beginnen.
3. Wenn ich nun Satz für Satz auslese, so kommt es natürlich vor, dass der aktuelle Satz nicht mehr im sichtbaren Bereich ist. Kann ich das aus dem Label oder der Scrollview herauslesen, dass ich nun einen Textbereich erreicht habe, der nicht mehr sichtbar ist?
Oder anders herum, wenn ich auf die Scrollview verzichte und nur einen fixen Label mache -> kann ich von dem herausbekommen, wie viel (oder welcher) Text in dem sichtbaren Bereich steht und welcher schon nach unten verschwunden ist?
Wäre toll, wenn mir hier wer helfen könnte.
LG
Wolfgang
Die Applikation soll ganz einfach sein:
1. Ich erstelle mir eine ScrollView -> im Panel lege ich ein Label an, in das der Text geladen wird. So kann ich dann den Text rauf/runter scrollen.
2. Dieser Text soll mit TTS vorgelesen werden.
Nun zu den Feinheiten, wo ich derzeit anstehe:
1. Der zu ladende Text ist unterschiedlich lange. Wie setzte ich die InnerHight der Scrollview bzw die Height des Label korrekt, dass der Text korrekt anzeigt wird? (derzeit habe ich harccoded 10000 eingetragen - ist natürlich nicht so schön, dass am Ende des Textes dann noch ewig gescrollt werden kann)
2. Der TTS-Funktion würde ich immer einen Satz aus dem Text im Label übergeben. Kann ich irgendwie erkennen, wann der vorige Satz zu Ende gesprochen wurde? Ich weiss, dass ich mittels "TTS1.Speak (sSatz,FALSE)" mehrere Sätze "gepuffert" übergeben kann. Was mir vorschwebt ist aber, dass ich jeweils einen Satz nach dem anderen aus dem Label auslese und dem TTS übergebe. Gleichzeitig merke ich mir, welcher Satz gerade vorgelesen wird.
Wenn ich dann die TTS Funktion in einem Satz (z.B Nr. 5) abbrechen würde, so soll mein Programm erkennen, dass der Satz 5 noch nicht vollständig vorgelesen würde. Beim nächsten Programmaufruf könnte ich also bei Satz 5 weitermachen und von hier gleich zu lesen beginnen.
3. Wenn ich nun Satz für Satz auslese, so kommt es natürlich vor, dass der aktuelle Satz nicht mehr im sichtbaren Bereich ist. Kann ich das aus dem Label oder der Scrollview herauslesen, dass ich nun einen Textbereich erreicht habe, der nicht mehr sichtbar ist?
Oder anders herum, wenn ich auf die Scrollview verzichte und nur einen fixen Label mache -> kann ich von dem herausbekommen, wie viel (oder welcher) Text in dem sichtbaren Bereich steht und welcher schon nach unten verschwunden ist?
Wäre toll, wenn mir hier wer helfen könnte.
LG
Wolfgang
Last edited: