Я должен реализовать функцию TTS, чтобы считывать веб-страницу, открытую в веб-браузере, в то время как при чтении текста я также должен выделить работу, которую система читает, но я не могу сделать то же самое.
Я просматриваю пост здесь, но не получаю фактический результат, как я хочу. а также, когда я пытаюсь этот код ниже, я получаю сообщение об ошибке "System.Runtime.InteropServices.COMException
Сообщение = Исключение из HRESULT: 0x800A025E "в trg.select ()
IHTMLDocument2 currentDoc = (IHTMLDocument2)webBrowser1.Document.DomDocument;
foreach (IHTMLElement elem in currentDoc.body.all)
{
string[] splitSentences = elem.innerText.Split(" ".ToCharArray());
for (int i = 0; i < splitSentences.Length; i++)
{
// highlight(splitSentences[i]);
mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)(webBrowser1.Document.DomDocument);
IHTMLBodyElement bodyElement = doc.body as IHTMLBodyElement;
IHTMLTxtRange trg = bodyElement.createTextRange();
if (trg.findText(splitSentences[i], 0, 0))
{
trg.select();
}
//if (trg != null)
//{
// String SearchString = splitSentences[i];// "Privacy"; // This is the search string you're looking for.
// int wordStartOffset = 0; // This is the starting position in the HTML where the word you're looking for starts at.
// int wordEndOffset = SearchString.Length;
// trg.move("character", wordStartOffset);
// trg.moveEnd("character", wordEndOffset);
// trg.select();
//}
//mshtml.IHTMLSelectionObject sel = (mshtml.IHTMLSelectionObject)doc.selection;
//mshtml.IHTMLTxtRange rng = (mshtml.IHTMLTxtRange)sel.createRange();
//// rng.collapse(false);
//if (rng.findText(splitSentences[i], 1000000, 0))
//{
// rng.select();
// sound_object.Speak(splitSentences[i], SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync);
//}
//sound_object.Speak(splitSentences[i], SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
Thread.Sleep(2000);
}
я знаю, что этот код не собирается найти текст в элементе, он найдет текст на всей странице, я хочу просто выяснить, как он будет работать, но он не работает,
Пожалуйста, предложите что-нибудь полезное.