Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从一组对象访问音频文件_Javascript_Arrays_Object_Dynamic_Html5 Audio - Fatal编程技术网

Javascript 从一组对象访问音频文件

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。所以我用一个

我正在尝试向HTML/JavaScript测验添加一个音频方面(请参阅JSFIDLE:)。我有一个空的音频标签:

<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);




}