创建一个只有播放和暂停的 Javascript 音频播放列表
Posted
技术标签:
【中文标题】创建一个只有播放和暂停的 Javascript 音频播放列表【英文标题】:Creating a Javascript audio playlist with only play and pause 【发布时间】:2016-04-20 02:24:30 【问题描述】:我想创建一个只能播放和暂停的音频播放列表。但是,当用户听完整首歌曲后,我希望该用户能够重新播放歌曲。
目前,javascript 播放列表仅播放和停止音乐。我的暂停按钮并没有真正像暂停按钮那样工作。不知道我哪里出错了。一旦用户听完歌曲,我究竟如何才能让歌曲自动重新设置到开头?我将非常感谢这方面的帮助!我已经编写了 html 音频代码,只是在下面列出了 Java Script。
<script> // play/pause button
$(function()
$('#play').click(function()
$('#pause').attr('src',"media/pause.png");
);
);
$(".playBtn").on('click', function()
var target = $(this).attr("target");
$("#audio").attr("src",target);
$("#audio").trigger("play");
);
$(".pauseBtn").on('click', function()
$("#audio").trigger("pause");
);
);
</script>
【问题讨论】:
“当用户听完整首歌曲后,我希望能够让该用户重新播放歌曲。” 预期结果为单音频循环来源? “我的暂停按钮不像暂停按钮那样工作” 尝试在DOM
元素上调用 pause()
?
是的,只有在歌曲播放完毕后才能自动重新设置。
【参考方案1】:
音频标签有几个可以添加监听器的事件。以下是它们列表的链接:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events
“结束”事件在音频播放完毕时触发,因此它可以帮助在音频到达结尾时将歌曲重置为开头。
$("#audio").on("ended", function ()
this.currentTime = 0;
);
【讨论】:
【参考方案2】:您可以在<audio>
元素中使用loop
属性来连续循环单个音频源。用缓存 <audio>
DOM
元素替换 jQuery 对象以在 click
事件中调用 .play()
、.pause()
。
javascript
$(function()
var audio = $("#audio")[0];
$(".playBtn").on("click", function()
audio.play()
);
$(".pauseBtn").on("click", function()
audio.pause()
);
)
html
<audio id="audio" src="/path/to/audio/source" loop autoplay controls></audio>
<button class="playBtn">Play</button>
<button class="pauseBtn">Pause</button>
jsfiddle https://jsfiddle.net/kkf33dpr/
【讨论】:
以上是关于创建一个只有播放和暂停的 Javascript 音频播放列表的主要内容,如果未能解决你的问题,请参考以下文章
英华在线助手-自动静音连播-自动跳转到未完成视频-视频暂停超时播放提示音
英华在线助手-自动静音连播-自动跳转到未完成视频-视频暂停超时播放提示音
JavaScript - PC 端通过纯 js 播放音频文件(播放提示音)