我正在尝试构建一个 HTML5 音频播放器,我的主要问题是滚动曲目。我已经构建了一个 JSON 文件,其中包含我的曲目以及标题和其他信息。这是html代码。
<audio>
<source src="" id="oggSource" type="audio/ogg" />
<source src="" id="mp3Source" type="audio/mpeg" />
Your browser does not support the audio element.
</audio>
<br/>
<input type="button" value="<<" onclick="">
<input type="button" value="Play" onclick="playPause()">
<input type="button" value=">>" onclick="playNextSongOnClick()"><br/>
<input type="button" value="Duration" onclick="duration()"><input type="button" value="currentTime" onclick="currentTime()"><br/>
这是我的 javascript
function initiate_AudioPlayer(){
var song = 0;
$("#oggSource").attr("src","audio/"+playlist.songs[song].source+".ogg");
$("#mp3Source").attr("src","audio/"+playlist.songs[song].source+".mp3");
}
function playPause() {
var audio = document.getElementsByTagName('audio')[0];
if (audio.paused){audio.play();}
else {audio.pause();}
}
function playNextSongOnClick(){
var audio = document.getElementsByTagName('audio')[0];
$("#oggSource").attr("src", "audio/song2.ogg");
$("#mp3Source").attr("src", "audio/song2.mp3");
audio.pause();
audio.load();
audio.play();
}
function duration(){
var audio = document.getElementsByTagName('audio')[0];
alert (audio.duration);
}
function currentTime(){
var audio = document.getElementsByTagName('audio')[0];
alert (audio.currentTime);
}
$('document').ready(initiate_AudioPlayer);
在 Safari 中,当我按下播放时会播放音频,但之后不会播放另一首曲目。当我单击“持续时间”按钮时,会弹出“NaN”,所以我假设 Safari 没有加载文件。
在 Firefox 中,我遇到了相反的问题。第一首曲目返回“NaN”的持续时间,但是当我单击“播放下一首曲目”按钮时,会返回实际的持续时间值并播放曲目。
在 Chrome 中,一切都很棒!我没有在IE9中测试过。
我应该缓冲或卸载文件或类似的东西吗?任何帮助将不胜感激。