2017-01-13 8 views
2

周辺ガイド:ResponsiveVoice.js - それは述べ癖セクションの下<a href="http://responsivevoice.org/" rel="nofollow noreferrer">ResponsiveVoice.JS website</a>のIOS TTSに必要な直接ユーザーインタラクション

をiOSのTTSは、直接ユーザーとの対話なしにトリガすることができない、ResponsiveVoice JSはこの

を解決します

しかし、私の人生の間、私はこの直接的なユーザーのやり取りの要件を回避することはできません。 どうやってこれを回避しますか?ここで

は私が現在<head>要素に位置しているユーザーとの対話なしで実行しようとしているコードスニペットです:

<script src="http://code.responsivevoice.org/responsivevoice.js"></script> 
<script type="text/javascript"> 
    function speak_static_data(){ 
     responsiveVoice.speak('Test'); 
    } 
    setTimeout(function(){ speak_static_data(); }, 3000); 
</script> 

私は直接ユーザーとの対話なしのiOSでページのロードにresponsiveVoice.speak('Test');を呼び出すしたいと思います。どうすればいい?

このコードスニペットは、デスクトップ上のAndroid/SafariではデスクトップではなくiOSでは上手く話します。

答えて

0

だから私はこれを捜し求めていたので、よくある質問にはiOSガイドラインがあります。彼らはそれを完全に回避するのではなく、最初のインスタンスの後でいつもそれを回避します。

iOSでは、音声合成などの一部のイベントは、ユーザー操作(クリック)からトリガーする必要があります。そのため、ResponsiveVoiceは、たとえばページの読み込みでは動作しない呼び出しを発声します。

音声合成では、そのユーザーがトリガした操作は一度だけ行う必要があります。最初のコール以降の直接コールは、期待通りに機能します。

したがって、ユーザーがクリックできるように「開始」ボタンを追加し、それをresponsiveVoice.speak()の初期化呼び出しとして使用することをお勧めします。その呼び出しには、必要に応じてテキストとして空白を入れることができるため、ユーザーに影響はありません。

実際に何も言っている必要はありません。そのため、ユーザーがresponsiveVoiceを呼び出すボタンをクリックするだけで十分です。

<button onclick="responsiveVoice.speak('');">Enable Voice</button> 

Responsve声FAQ:https://responsivevoice.org/faq/

関連する問題