从对象数组中访问音频文件

时间:2014-04-21 21:39:50

标签: javascript arrays object dynamic html5-audio

我正在尝试将音频方面添加到HTML / JavaScript测验中(请参阅JSFiddle:http://jsfiddle.net/55aJt/3/)。我有一个空的音频标签:

<audio id="myAudio" src="" controls></audio>

我想从我的阵列中播放&#39;问题&#39;属性:

var allQuestions = [{
    question: "http://www.w3schools.com/html/horse.mp3",
    choices: ["3rd", "5th", "4th"],
    correctAnswer: 2
},

由于我的音频播放器无法加载任何内容,因此无法正常工作。我将从对象发送数据到音频播放器的功能在某种程度上显然是错误的。有人可以帮助我解决我做错的事情吗?

1 个答案:

答案 0 :(得分:0)

这不是完整的答案,但看看它是否能让你朝着正确的方向前进。

http://jsfiddle.net/55aJt/9/

基本上你可以通过javascript更改audio.src。所以我只是用一个对象属性替换它,当用户单击下一个按钮时,该属性会发生变化。第一个src默认为音频标签的初始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);




}