Speak szövegkijelölés StreamPosition

Speak szövegkijelölés StreamPosition
2010-04-07T09:54:09+02:00
2010-04-08T11:25:43+02:00
2022-11-17T08:45:39+01:00
tervin
Sziasztok!
Lenne egy problémám! Szövegfelolvasásnál kijelölöm az éppen felolvasandó szót Word eventtel. A problémám az lenne, ha nem a szöveg elejéől olvastatok fel, akkor is a szöveg elejétől jelöli ki a szavakat.
Pl. ha van egy szövegem: "Indul a görög aludni."
Beállítom a kurzorpozíciót a görög szóra, hogy onnan olvasson fel, ez működik is, de akkor is az indul szótól kezdve jelölget, ami nyílván így nem jó. Valahogy hivatkoznom kellene arra, hogy mia StreamNumber meg StreamPosition, de nem tudom ezt hogy kell beállítani. MSDN linknem segített, nem értetem hogy állíthatnám ezt.
Itt van az eddigi, ami nagyon jól működik, ha a felolvasás az első szótól kezdődik.

private void tbrPlay_Click(object sender, EventArgs e) { if (rtbText.Text.Trim() != "") { try { if (Language == 3) { if (Speech.Status.RunningState == 0) { Speech.Resume(); } } if (Speech.Status.RunningState == SpeechRunState.SRSEDone) { [b]Speech.Speak(rtbText.Text.Substring(rtbText.SelectionStart), SpeechVoiceSpeakFlags.SVSFlagsAsync);[/b] } [b]Speech.Word += new _ISpeechVoiceEvents_WordEventHandler(Speech_Word);[/b] Speech.EndStream += new _ISpeechVoiceEvents_EndStreamEventHandler(Speech_EndStream); } catch (Exception ex) { MessageBox.Show(dlgPlayErr + ".\n" + ex.Message, dlgErr, MessageBoxButtons.OK, MessageBoxIcon.Error); tbrStop_Click(this, e); } } } [b]private void Speech_Word(int StreamNumber, object StreamPosition, int CharacterPosition, int Length) { rtbText.Select(CharacterPosition, Length); }[/b]

Nyilván minden felolvasásnál generál a Word event egy StreamNumber-t meg Streamposition-t, ezt kellene gondolom valahogy buherálni.
Minden segítséget előre is köszönök!
Mutasd a teljes hozzászólást!
Na csak kisakkoztam, nem kellett a StreamPosition, csak a CharacterPosition-t kellett beállítani, ehhez meghívtam a StartStream eventet, ott megadtam: StartPos = CharacterPosition;
Majd a Word eventnél:
rtbText.Select(Characterpositon + StatPos, Length);
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd