4

モバイル Web サイトで SpeechSynthesisUtterance を使用しています。このコードは、デスクトップ版の Web サイトで使用しても問題ありません。しかし、次のように document.ready のモバイル ブラウザで関数が機能しないことがわかりました。

 $(document).ready(function(){
 var text_tts="say something";
 speakText(text_tts);
    });
function speakText(text_tts){
var u = new SpeechSynthesisUtterance();
u.text = text_tts;
u.lang = 'en-US';
u.rate = 1;
u.onend = function(event) { console.log('Finished in ' + event.elapsedTime + ' seconds.'); }
speechSynthesis.speak(u);

}

しかし、「クリック」イベントを使用すると、次のように機能します。

$("body").on("click",".button",function(){
         var tmp_body_text="say something";
                   var u = new SpeechSynthesisUtterance();
                   u.text = tmp_body_text;
                   u.lang = 'en-US';
                   u.rate = 1;
                   //u.onend = function(event) { console.log('Finished in ' + event.elapsedTime + ' seconds.'); }
                   speechSynthesis.speak(u);
                   });

助けてください。ありがとうございました。

4

1 に答える 1

2

クリックなどのユーザー インタラクションから呼び出された場合にのみ機能するいくつかの言及 (たとえば、このなど) を見てきました。speak私が見たところ、それは iOS の Safari の場合のようであり、それはあなたが質問で説明していることのようです。

この動作を確認するドキュメントは実際には見つかりませんでした。誰かが提供できる参考資料をいただければ幸いです。

于 2015-03-02T21:44:30.987 に答える