javascript - 动态加载音频的src并在src不存在后停止

标签 javascript jquery html error-handling html5-audio

我有名为* song_1 *,* song_2 *,* song_3 *等的歌曲。我希望它们在上一首歌曲播放后立即播放。这就是为什么我具有“结束”功能,该功能可以自动播放下一首歌曲(到目前为止效果很好)。我拥有的歌曲数量是动态获得的,因此我无法告诉您停止通过硬编码加载下一个src。但是,当不存在src时,会出现错误,并且在完成播放后无法重播歌曲。如何防止此错误?

HTML:

<audio id="audio">
        <source id="mp3Source" type="audio/mp3" />
</audio>  

jQuery的:
var audio = $("#audio");
var src = "audio/song_";
var countSongs = 0;

audio.addEventListener("ended", function() {
   countSongs++
   $('#mp3Source').attr('src', src+countSongs.toString()).detach().appendTo(audio);
   audio.play();
});

$('#mp3Source').error(function() {
   alert("error");
});

最佳答案

Try this. Getting the native DOM element as jQuery knows nothing about .play() method on the wrapped array returned by the $('#audio') selector:


var audio = $("#audio");
var src = "audio/song_";
var countSongs = 0;

audio.addEventListener("ended", function() {

   countSongs++

   $('#mp3Source').attr('src', src + countSongs.toString()).detach().appendTo(audio);
   audio[0].play();

});

关于javascript - 动态加载音频的src并在src不存在后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22068721/

相关文章:

Javascript 通过 Servlet 连接被 chop

javascript - 图像调整大小的 jQuery 事件?

php - 如何通过使用 PHP/javascript 比较日期来了解用户的年龄/使用时间?

javascript - 从 html 页面调用文件 jQuery 文件

html - :checked css not working

javascript - 如何合并 2 个 DOM 元素数组

jquery - 如何使用jquery在ul中的一个li中查找多个类

javascript - JQuery 值与引用

javascript - 如何在移动浏览器中加载页面时在所选元素中显示长字符串

html - 文本未与要在右侧对齐的列表的图像和背景定位对齐