Javascript音频控制自动播放暂停
我的应用程序上有一个音频循环,我希望它能自动播放,并在播放和暂停之间切换图标。但不能在暂停和播放之间切换 JSJavascript音频控制自动播放暂停,javascript,jquery,audio,Javascript,Jquery,Audio,我的应用程序上有一个音频循环,我希望它能自动播放,并在播放和暂停之间切换图标。但不能在暂停和播放之间切换 JS var audioElement = document.createElement('audio'); audioElement.setAttribute('src', 'bglaughs.mp3'); audioElement.play(); audioElement.addEventListener('ended', function() { this.currentTim
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'bglaughs.mp3');
audioElement.play();
audioElement.addEventListener('ended', function() {
this.currentTime = 0;
this.play();
}, true);
if(audioElement.paused && audioElement.currentTime > 0 && !audioElement.ended) {
$(document).on('click', '.play', function() {
audioElement.play();
$(this).removeClass('play').addClass('pause');
$('a .fa-volume-off').removeClass('fa-volume-off').addClass('fa-volume-up');
});
} else {
$(document).on('click', '.pause', function() {
audioElement.pause();
$(this).removeClass('pause').addClass('play');
$('a .fa-volume-up').removeClass('fa-volume-up').addClass('fa-volume-off');
});
}
HTML
<a href="#" id="music" style="color:black" class="play"><i class="fa fa-volume-up fa-2x" aria-hidden="true"></i></a>
由于音频正在加载播放 只需将锚点的onload类设置为暂停。
你的代码是正确的
<a href="#" id="music" style="color:black" class="pause">
因为音频正在加载时播放
只需将锚点的onload类设置为暂停。
你的代码是正确的
<a href="#" id="music" style="color:black" class="pause">
在IMO中,您可以用更少的代码处理此问题:
audioElement = new Audio('bglaughs.mp3');
audioElement.addEventListener("canplay", function() {
audioElement.play();
}, false);
audioElement.addEventListener('ended', function () {
this.currentTime = 0;
this.play();
}, false);
$('#music').on('click', function(e) {
e.preventDefault();
var volIcon = $(this).find('i');
volIcon.toggleClass('fa-volume-up fa-volume-off');
if (volIcon.hasClass('fa-volume-off')) {
audioElement.pause();
} else {
audioElement.play();
}
});
依我看,你可以用更少的代码来处理这个问题:
audioElement = new Audio('bglaughs.mp3');
audioElement.addEventListener("canplay", function() {
audioElement.play();
}, false);
audioElement.addEventListener('ended', function () {
this.currentTime = 0;
this.play();
}, false);
$('#music').on('click', function(e) {
e.preventDefault();
var volIcon = $(this).find('i');
volIcon.toggleClass('fa-volume-up fa-volume-off');
if (volIcon.hasClass('fa-volume-off')) {
audioElement.pause();
} else {
audioElement.play();
}
});