使用javascript从json更新音频源
我已经看到了很多方法,但是我很难在我想要的代码中实现它。我正在修改别人的(开源)代码,我想我迷路了。我想为问题列表中的每个问题播放一段声音片段,并提出一个与该文件相关的问题。我一直在写,所以我不会发布我糟糕的代码,而是发布干净的javascript并请求指针。理想情况下,我希望它出现在json中,并通过html进行更新,但它不起作用使用javascript从json更新音频源,javascript,html,json,audio,mobile,Javascript,Html,Json,Audio,Mobile,我已经看到了很多方法,但是我很难在我想要的代码中实现它。我正在修改别人的(开源)代码,我想我迷路了。我想为问题列表中的每个问题播放一段声音片段,并提出一个与该文件相关的问题。我一直在写,所以我不会发布我糟糕的代码,而是发布干净的javascript并请求指针。理想情况下,我希望它出现在json中,并通过html进行更新,但它不起作用 $(document).ready(function () { var questionNumber=0; var questionBank=new
$(document).ready(function () {
var questionNumber=0;
var questionBank=new Array();
var stage="#game1";
var stage2=new Object;
var questionLock=false;
var numberOfQuestions;
var score=0;
$.getJSON('activity.json', function(data) {
for(i=0;i<data.quizlist.length;i++){
questionBank[i]=new Array;
questionBank[i][0]=data.quizlist[i].question;
questionBank[i][1]=data.quizlist[i].option1;
questionBank[i][2]=data.quizlist[i].option2;
questionBank[i][3]=data.quizlist[i].option3;
}
numberOfQuestions=questionBank.length;
displayQuestion();
})//gtjson
function displayQuestion() {
var rnd=Math.random()*3;
rnd=Math.ceil(rnd);
var q1;
var q2;
var q3;
if(rnd==1 {
q1=questionBank[questionNumber[1];
q2=questionBank[questionNumber[2];
q3=questionBank[questionNumber][3];
}
if(rnd==2) {
q2=questionBank[questionNumber][1];
q3=questionBank[questionNumber][2];
q1=questionBank[questionNumber][3];
}
if(rnd==3) {
q3=questionBank[questionNumber][1];
q1=questionBank[questionNumber][2];
q2=questionBank[questionNumber][3];
}
$(stage).append('<div class="questionText">'+questionBank[questionNumber][0]+'</div><div id="1" class="option">'+q1+'</div><div id="2" class="option">'+q2+'</div><div id="3" class="option">'+q3+'</div>');
$('.option').click(function() {
if(questionLock==false) {
questionLock=true;
//correct answer
if(this.id==rnd) {
$(stage).append('<div class="feedback1">CORRECT</div>');
score++;
}
//wrong answer
if(this.id!=rnd) {
$(stage).append('<div class="feedback2">WRONG</div>');
}
setTimeout(function(){changeQuestion()},1000);
}
})
}//display question
function changeQuestion() {
questionNumber++;
if(stage=="#game1") {
stage2="#game1";
stage="#game2";
} else {
stage2="#game2";
stage="#game1";
}
if(questionNumber<numberOfQuestions {
displayQuestion();
} else {
displayFinalSlide();
}
$(stage2).animate({"right": "+=800px"},"slow", function() {
$(stage2).css('right','-800px');
$(stage2).empty();
});
$(stage).animate({"right": "+=800px"},"slow", function() {
questionLock=false;
});
}//change question
function displayFinalSlide() {
$(stage).append('<div class="questionText">You have finished the quiz!<br><br>Total questions: '+numberOfQuestions+'<br>Correct answers: '+score+'</div>');
}//display final slide
});//doc ready
$(文档).ready(函数(){
变量编号=0;
var questionBank=新数组();
var stage=“#游戏1”;
var stage2=新对象;
var-questionLock=false;
var问题;
var得分=0;
$.getJSON('activity.json',函数(数据){
for(i=0;iFor referenceCtrl-K
(使用移动键盘应该仍然很容易)是一种简单的缩进方式。您的问题标题可能有点误导,或者至少与正文不一致。您是在实际尝试“上传录音”还是只是尝试“为每个列表成员播放文件”?如果是后者,则“档案在哪里?"。有点常识的话,音频会有单独的URL,只列出URL。让正常的浏览器功能处理检索和播放。我在html中添加了播放功能,我希望它播放离线存储的文件。但是我希望每个声音文件都与每个问题相关联。将两者关联在一起是我遇到的问题。F或者referenceCtrl-K
(使用移动键盘应该仍然很容易)是一种简单的缩进方式。您的问题标题可能有点误导,或者至少与正文不一致。您是否确实在尝试“上传录音”?或者您只是在尝试“为每个列表成员播放文件”?如果是后者,则“档案在哪里?“。有点常识的话,音频会有单独的URL,只列出URL。让正常的浏览器功能处理检索和播放。我在html中添加了播放功能,我希望它播放离线存储的文件。但我希望每个声音文件都与每个问题关联。将两者关联在一起是我遇到的问题。