Javascript 从一组对象访问音频文件
我正在尝试向HTML/JavaScript测验添加一个音频方面(请参阅JSFIDLE:)。我有一个空的音频标签:Javascript 从一组对象访问音频文件,javascript,arrays,object,dynamic,html5-audio,Javascript,Arrays,Object,Dynamic,Html5 Audio,我正在尝试向HTML/JavaScript测验添加一个音频方面(请参阅JSFIDLE:)。我有一个空的音频标签: <audio id="myAudio" src="" controls></audio> 这不起作用,因为我的音频播放器没有加载任何内容。我将数据从对象发送到音频播放器的功能在某些方面显然是错误的。有人能帮我解释一下我做错了什么吗?这不是完整的答案,但看看它是否能帮你找到正确的方向 基本上,您可以通过javascript更改audio.src。所以我用一个
<audio id="myAudio" src="" controls></audio>
这不起作用,因为我的音频播放器没有加载任何内容。我将数据从对象发送到音频播放器的功能在某些方面显然是错误的。有人能帮我解释一下我做错了什么吗?这不是完整的答案,但看看它是否能帮你找到正确的方向 基本上,您可以通过javascript更改audio.src。所以我用一个对象属性替换了它,当用户单击next按钮时,该属性会发生变化。第一个src默认为audio标记的初始src。你可以修改代码,如果你喜欢,但我认为它可能是好的
var allQuestions = [{
question: "Identify the musical interval",
choices: ["3rd", "5th", "4th"],
correctAnswer: 2,
audioSrc: " defaults to the original .ogg file"
}, {
question: "Which of the following best describes this chord?",
choices: ["Major", "Minor", "Diminished"],
correctAnswer: 0,
audioSrc:" http://en.wikiaudio.org/images/b/b8/MPC60_626_Cym_da_China_.wav"
}];
然后
function nextQuestion() {
updateScore();
questionCount++;
showScore();
showQuestion();
var audio = document.getElementById('myAudio')
audio.src = ( allQuestions[questionCount].audioSrc);
}
为什么不为每个问题对象添加一个新属性,并将每个问题的数据发送到音频播放器?是的,这正是我一直在尝试(但失败)做的!我想我现在所拥有的更接近。我会更新我的问题…我回答了下面的问题。让我知道它是否适合你,如果是这样。。。请接受(勾选复选标记)。如果你不留下评论,我会尽力帮助你。是的,这很有效!这是一种有趣的方式。如果我想把问题的顺序随机化,将来可能会有问题,但现在还可以。谢谢您可以通过将页面加载上的audio src设置为allQuestions[0]。audio src是什么来解决这个问题。
function nextQuestion() {
updateScore();
questionCount++;
showScore();
showQuestion();
var audio = document.getElementById('myAudio')
audio.src = ( allQuestions[questionCount].audioSrc);
}