Собственно, речь пойдет о том, как добиться того, чтобы наше приложение не "подвисало" в процессе воспроизведения речевым синтезатором фразы. На самом деле раньше (когда мы использовали импорт библиотеки типов) все было просто и понятно. Импортируемая функция имела флаги, на все случаи жизни... Поэтому мы легко и непринужденно ставили SVSFlagsAsync и радовались жизни... Но когда мы работаем с чистым OLE, нас такой возможности нет... Хотя если включить голову и немного фантазии... Кто ж запретит нам исполнять этот код в отдельной нити (Tread)? Да и потом с чистой совестью указать в резюме, что мы имеем такой скилл))) Собственно, создадим Tread... Которому, через переопределённый конструктор Create передадим нужный к произнесению текст (в данном случае, строкой)... И напишем процедуру... Ну, собственно и все. Работаем дальше!
И вновь тема Speech API и Delphi 12.1... Асинхронный вывод.
5 февраля5 фев
12
~1 мин