【发布时间】:2021-01-07 09:53:59
【问题描述】:
我找到了三个可能的脚本,用于我网页的音频播放/暂停按钮。顺便说一下,我只想显示播放/暂停按钮,而不是停止按钮。我想隐藏默认音频 HTML5 媒体元素附带的控件。这些脚本按预期工作得很好。 问题是我想让一个脚本适用于我网页上的多个播放/暂停按钮(多个声音文件)。我计划在我的页面上有很多音频,不想在一个页面上包含很多 Javascript 脚本 - 所有按钮只需要一个脚本。
- 一个脚本是javascript。但是,它仅适用于一个播放/暂停按钮,不适用于多个。
- 另一个脚本是 jQuery。但是,它也仅适用于一个播放/暂停按钮。
- 第三个脚本是javascript。它适用于页面上的不同播放按钮。问题是该脚本中没有暂停功能。
我一直在尝试不同的组合,尝试将暂停功能插入到适用于多个按钮的脚本中,还尝试调整单按钮脚本以使其适用于多个按钮,但没有成功。 我大约一个月前才开始学习编码,所以如果我是一个新手的话。 HTML是这样的: 有两种不同的 HTML,因为它们使用不同的脚本。第二个如下所示。
<a id="play-pause-button" class="fas fa-play"></a>
第一个脚本(JavaScript,适用于单个播放/暂停按钮,但不适用于多个按钮):
function initAudioPlayer2() {
audio2 = new Audio();
audio2.src = "2b.mp3";
playbtn2 = document.getElementById("playpausebtn2");
playbtn2.addEventListener ("click", playPause);
audio2.addEventListener ("ended", myFunction);
function playPause(){
if (audio2.paused){
audio2.play();
playbtn2.style.background = "url(images/pause.png) no-repeat";
} else {
audio2.pause();
playbtn2.style.background = "url(images/play.png) no-repeat";
}
}
audio2.addEventListener ("ended", myFunction);
function myFunction() {
playbtn2.style.background = "url(images/play.png) no-repeat";
}
}
window.addEventListener("load", initAudioPlayer2);
第二个脚本(jQuery,适用于单个播放/暂停按钮,但不适用于多个按钮):
var audio=new Audio("2e.mp3");
$('#play-pause-button').on("click",function(){
if($(this).hasClass('fa-play'))
{
$(this).removeClass('fa-play');
$(this).addClass('fa-pause');
audio.play();
}
else
{
$(this).removeClass('fa-pause');
$(this).addClass('fa-play');
audio.pause();
}
});
audio.onended = function() {
$("#play-pause-button").removeClass('fa-pause');
$("#play-pause-button").addClass('fa-play');
};
第三个脚本(Javascript,适用于多个按钮但没有暂停功能,只有播放功能):
function playAudio(el) {
var audio = document.getElementById('audio');
var source = el.getAttribute('data-src');
audio.src = source;
audio.play();
}
关联的html是:
<audio id="audio"></audio>
<button onclick="playAudio(this)" data-src="2b.mp3">Button</button>
所有三个脚本都按预期工作,但它们并不能完全满足我的要求。前两个只能用于一个按钮,所以我必须为每个按钮编写一个新脚本;最后一个适用于多个按钮/多个音频,但它不显示暂停按钮,我需要一个暂停按钮。
请注意,我的网页上不需要单个音频播放器来播放不同的曲目。我已经找到了可以做到这一点的脚本,但这不适合我。我计划在我的网页上设置多个播放/暂停按钮,每个按钮播放不同的短音频。我不知道声音文件的确切数量,但会有很多。
播放/暂停按钮彼此不分离。当声音开始播放时,播放按钮被暂停按钮取代,当声音停止播放或音频暂停时,暂停按钮被播放按钮取代。
【问题讨论】:
-
那里有很多信息,但有点迂腐,你实际上没有问过一个问题。
标签: javascript jquery