Javascript 如何使用jQuery在无限循环中播放音频文件
现在我有一段代码(如下),它允许我点击按钮播放音频文件。但是,我希望文件在无限循环中播放,直到我单击“停止”按钮。 我怎样才能做到这一点Javascript 如何使用jQuery在无限循环中播放音频文件,javascript,jquery,audio,mp3,Javascript,Jquery,Audio,Mp3,现在我有一段代码(如下),它允许我点击按钮播放音频文件。但是,我希望文件在无限循环中播放,直到我单击“停止”按钮。 我怎样才能做到这一点 var audiotypes={ "mp3": "audio/mpeg", "mp4": "audio/mp4", "ogg": "audio/ogg", "wav": "audio/wav" } function ss_soundbits(sound){ var audio_element = document.cr
var audiotypes={
"mp3": "audio/mpeg",
"mp4": "audio/mp4",
"ogg": "audio/ogg",
"wav": "audio/wav"
}
function ss_soundbits(sound){
var audio_element = document.createElement('audio')
if (audio_element.canPlayType){
for (var i=0; i<arguments.length; i++){
var source_element = document.createElement('source')
source_element.setAttribute('src', arguments[i])
if (arguments[i].match(/\.(\w+)$/i))
source_element.setAttribute('type', audiotypes[RegExp.$1])
audio_element.appendChild(source_element)
}
audio_element.load()
audio_element.playclip=function(){
audio_element.pause()
audio_element.currentTime=0
audio_element.play()
}
return audio_element
}
}
var audio = ss_soundbits('audio/file.mp3');
var start_audio= function() {
audio.playclip();
};
var音频类型={
“mp3”:“音频/mpeg”,
“mp4”:“音频/mp4”,
“ogg”:“音频/ogg”,
“wav”:“音频/wav”
}
功能ss_声音位(声音){
var audio_element=document.createElement('audio'))
if(音频元素.canPlayType){
对于(var i=0;i捕获音频元素上的end
事件,然后使其再次播放
audio_element.addEventListener('ended', function() {
this.currentTime = 0;
this.play();
}, false);
这对你来说应该足够了
编辑
正如@A.Wolff所指出的,我做了一个疏忽,点击stop将触发ended事件。设置一个全局布尔标志将解决这个问题
var stopped = false;
audio_element.addEventListener('ended', function() {
if(!stopped){
this.currentTime = 0;
this.play();
}
}, false);
var stop_button = document.getElementByID('stop');
stop.addEventListener('click', function(){
stopped = true
audio_element.stop();
});
抱歉我的评论-仅添加:如果不手动单击,audio_element.play()可能无法在移动浏览器上工作。有一个布尔属性loop
(而不是loup
)…;)方法stop()
也会触发end
事件?@a.wolf如果你是对的,我在回答中已经解决了这个问题。