Как отключить текст в речь, используя Javascript? - PullRequest
2 голосов
/ 28 февраля 2020

Я создал приложение Samsung Smart-TV, используя javascript, и теперь я хочу отключить TTS в этом приложении, но не знаю, как я могу это сделать, пожалуйста, помогите.

Я пытался использовать window.speechSynthesis но это не работает, не знаю почему. В настоящее время я загружаю окно, когда вызываю функцию init ()

function init(){
    if ('speechSynthesis' in window) {
              var synthesis = window.speechSynthesis;
              synthesis.cancel();

            } else {
              console.log('Text-to-speech not supported.');
            }

}

, но она не работает, и поэтому наконец я хочу отключить функцию преобразования текста в речь из моего приложения n

1 Ответ

0 голосов
/ 28 февраля 2020

Вы не можете отключить эту функцию. API-интерфейс SpeechSynthesis предназначен для добавления дополнительных функций, а не для отключения встроенной функции (которая может быть отключена только пользователями вашего приложения из настроек телевизора / браузера).

Как написано здесь: https://developer.samsung.com/smarttv/develop/legacy-platform-library/tv-functionality/accessibility.html

If user turns on Accessibility option for TTS in menu, TTS will read contents of HTML elements automatically.

Вы можете попробовать 2 вещи (которые могут не работать):

  1. Запускать каждые 1 с (или чаще) speechSynthesis.cancel () в setInterval (хотя я не уверен, что это остановит собственный TTS телевизора).

setInterval(() => window.speechSynthesis.cancel(), 1000)

Замените window.speechSynthesis.speak пустой функцией в начале вашего приложения (учитывая, что Samsung TV использует это для разговора).

window.speechSynthesis.speak = () => {}

...