テキスト読み上げを含む Web アプリの作業を開始しています。YouTube ユーザーの Wes Bos から学んだ手法を使用して、私のコードは、ボタンがクリックされるたびに、乱数を Google の英語のテキスト読み上げ API (文字通り URL に貼り付けて音声を返す) に渡します。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SujiQ Dev.0</title>
</head>
<body>
<!--text display/button -->
<p>generate random number</p>
<div id="output1"></div>
<button id="btn1" onclick="outText()">Random number</button>
<!--Hidden audio player -->
<audio src="" class="speech" hidden></audio>
<!--jQuery lib-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<!--read number out loud each button click -->
<script>
/*displays random number-of-the-moment; called on button click */
function outText() {
var randNum = Math.round(Math.exp(Math.random()*Math.log(10000000-0+1))); /*that's more like it*/
document.getElementById("output1").innerHTML = randNum;
/* play audio of random number */
$(function(){
$("button#btn1").on("click",function(e){
e.preventDefault();
var url = "https://translate.google.com/translate_tts?ie=UTF-8&q=" + randNum + "&tl=en";
$(".speech").attr("src", url).get(0).play();
});
});
}
</script>
</body>
</html>
このコードは、ブラウザでローカルに実行すると問題なく実行されますが、godaddy が提供するサイトでまったく同じコードをホストすると、乱数ジェネレーターは機能しますが、Google の音声 API へのアクセスはほとんどの場合失敗し、次の行に沿ってネットワーク コンソール エラーが返されます。 : "GET https://translate.google.com/translate_tts?ie=UTF-8&q=152&tl=en 404 (見つかりません)". 興味深いことに、非常にブルームーンになると、通過して数字を読み上げます。
何を与える?辺りを見回しましたが、困っています。
[[編集]] このコードは、スタック オーバーフロー スニペットとして実行された場合、数字の読み上げにも失敗します