2017-09-08 14 views
0

ここに私がしようとしていることの基本的なコードのアイデアがあります。ボタンを押してテキストファイルを選択し、それを私に読ませたいと思います。基本的にはtxtで入力された短い音符やものを読むだけです。まだ新しいjavascriptで遊んでいます。これは簡単だが、Googleは空に戻った?これもできますか?とjavascriptだけで、ファイル入力のアップロードとspeechSynthesisを組み合わせることができます-jquery please

<html> 
<body> 
<input type="file" id="myFile"> 
<button onclick="speak(myFile)">speak dang it</button> 
<script> 
function speak(text) { 
var msg = new SpeechSynthesisUtterance(); 
var voices = speechSynthesis.getVoices(); 
msg.voice = voices[2]; 
msg.voiceURI = 'native'; 
msg.volume = 1; 
msg.rate = 1; 
msg.pitch = 1; 
msg.text = text; 
msg.lang = 'en-US'; 
speechSynthesis.speak(msg); 
} 
</script> 
</body> 
</html> 
+0

ファイルの値をパースして、話すことができます。ファイルタイプを可読テキストに変換する必要があります – user7951676

答えて

-1

あなたはwindow.FileReaderまたはwindow.Blobを経由してファイルへのアクセス権を持っています。

はここに読みました:https://developer.mozilla.org/en-US/docs/Web/API/FileReader

更新

例:

<html> 
<body> 
<input type="file" id="myFile"> 
<button id="speak">speak dang it</button> 
<script> 
    if(window.FileReader && window.speechSynthesis) { 
     const fileInput = document.getElementById("myFile"); 

     fileInput.addEventListener("change", event => { 
      const Reader = new FileReader(); 
      Reader.readAsText(fileInput.files[ 0 ]); 

      Reader.onload = event => { 
       const contents = Reader.result; 
       const utterThis = new SpeechSynthesisUtterance(contents); 

       speechSynthesis.speak(utterThis); 
      } 

     }); 
    } 
</script> 
</body> 
</html> 

あなたが入力をサニタイズを確認し、ファイルの種類とすべてのことを確認したが、これは私が最小の例である必要があります次のように考えることができます...

+0

電子downvoteのために? – Dominik

+0

@pabloをもう一度upvoteするように気をつけてください。どういうわけか間違っているように見えませんか? – Dominik

関連する問題