前提・実現したいこと
HTML,JS,Jquery,CSSで英語の発音矯正をするシステムを作成しているのですが、Jqueryで単語をランダムで表示していて、そのうえでその単語の波形をWavesurfer.jsで表示しているのですがランダムで表示されている単語とその波形をつなげてランダムで表示された単語の波形を表示させる。
発生している問題・エラーメッセージ
今、作成しているものであると単語はランダムで表示できているのですが併せて波形もその単語に合わせたランダム表示ができてないです。
該当のソースコード
HTML
1<!DOCTYPE html> 2<html> 3<head> 4 <link href="style.css" rel="stylesheet" type="text/css"/> 5 <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> 6 7<title>英語発音矯正</title> 8<meta name="Description" content="英語発音矯正に向けたWebサイト" /> 9<meta name="Keywords" content="英語,発音,Webサイト,HTML,発音矯正,英語発音" /> 10<script type="text/javascript" src="http://www.google.com/jsapi"></script> 11 12<script type="text/javascript">google.load("jquery","1.7");</script> 13</head> 14<body> 15 <script src="https://cdnjs.cloudflare.com/ajax/libs/wavesurfer.js/1.2.3/wavesurfer.min.js"></script> 16 17 18 <h2>英語発音矯正に向けたWebサイト</h2> 19<div id="center"> 20 <div id="wrapper"> 21 <p>ランダムで単語を表示</p><br> 22 23<!--ランダムで表示する単語--> 24 <div id="random"> 25 <div><p><span class="red">サイ</span>トスィーイング</p><p>S<span class="red">igh</span>tsheeing</p><p>観光</p><p>sáitsìːiŋ</p><audio src="voice/sightseeing.mp3" controls alt=""></div> 26 <div><p><span class="red">エア</span>ポート</p><p><span class="red">Air</span>port</p><p>空港</p><p> éəpɔ`ːt</p><audio src="voice/airport.mp3" controls alt="何か"></div> 27 <div><p>アカモ<span class="red">デイ</span>ション</p><p>Accommo<span class="red">da</span>tion</p><p>宿泊施設</p><p>əkɑ`mədéiʃən</p><audio src="voice/accommodation.mp3" controls alt="何か"></div> 28 <div><p>ディ<span class="red">レ</span>クション</p><p>Di<span class="red">re</span>ction</p><p>方向、方角</p><p>dirékʃən</p><audio src="voice/direction.mp3" controls alt="何か"></div> 29 </div><!--random--> 30 </div><!--wrapper--> 31 <br> 32 33<!--ランダムに表示する処理--> 34 <script type="text/javascript"> 35 $(function(){ 36 var arr = []; 37 // randomの中にある要素を、push()で要素の中身を配列に追加します。 38 $("#random div").each(function(){ 39 arr.push($(this).html()); 40 }); 41 //sort()とMath.random()を使ってランダムに並び替えます。 42 arr.sort(function(){ 43 return Math.random() - Math.random(); 44 }); 45 // 並び替えた後は、randomの中身を空にする。 46 $("#random").empty(); 47 //arrに入ってる配列の数だけループさせる。 48 for(i=0; i< 1; i++){ 49 // append()を使って、randomの中に一つ一つ追加していく。 50 $("#random").append('<div>' + arr[i] +'</div>'); 51 } 52 }); 53 </script> 54 </div> 55 56<!--更新ボタンの処理--> 57 <form> 58 <input type="button" class="btn_btn" value="更新" onclick="koshin()"> 59 </form> 60 <p>更新ボタンを押して様々な単語を発音して正しい発音を身に付けましょう</p> 61 <br> 62<script> 63function koshin(){ 64 location.reload(); 65} 66</script> 67 68<br><br><h4>正しい音声の波形です</h4> 69 70<!--波形の処理--> 71<div id="waveform"></div> 72<div class="controls"> 73 <button class="btn btn-primary" onclick="wavesurfer.playPause()"> 74 <i class="glyphicon glyphicon-play"></i> 75 Play 76 / 77 <i class="glyphicon glyphicon-pause"></i> 78 Pause 79 </button> 80 </div> 81 82<script language="JavaScript"> 83var wavesurfer = WaveSurfer.create({ 84 barWidth: '1', 85 audioRate: '0.6', 86 container: '#waveform', 87 waveColor: 'red', 88 progressColor: 'purple', 89 height: '50' 90}); 91wavesurfer.load('airport.mp3'); 92</script> 93 94</body> 95</html> 96
試したこと
wavesurfer.load('airport.mp3') の部分をランダムで表示された英単語の音声データにしたくif文など使おうとしたがよくわからず… 単語に合わせてここの部分を変えようとしてもできなかった。
補足情報(FW/ツールのバージョンなど)
wavesurfer.js についてのURLを貼っておきます.
https://wavesurfer-js.org/
この質問の投稿者はすでに退会しているため、質問者からの返信がない点にご留意ください。
回答1件
この質問の投稿者はすでに退会しているため、質問者からの返信やベストアンサーの選定がない点にご留意ください。
あなたの回答
tips
プレビュー