gpt4 book ai didi

javascript - 使用当前音频 javascript 创建播放/暂停功能

转载 作者:行者123 更新时间:2023-12-03 04:17:26 25 4
gpt4 key购买 nike

我正在开发一个 chrome 扩展,我有一个 HTML 弹出窗口,其中包含播放音频的按钮。我认为我的方法不是最优雅的,而且我在探索缩小范围的方法时遇到了困难。我知道这是非常低效的。我希望能够知道在 HTML 页面上单击了哪个按钮,然后使用该 ID 播放具有相同 ID 的音频文件。我现在的方式是使用javascript中的EventListener来使用多个函数来停止或播放。有没有一种方法可以通过 javascript 或 jquery 将所有这些放在一个函数中来解决这种困惑? 由于我是在 Chrome 扩展上执行此操作,因此我无法在 HTML 文档中使用 Javascript。

目前我的 HTML 是这样的;

    <script type="text/javascript" src="js/audio.js"></script>

<a href="#" class="myButton" id="stopbutton">Stop Audio</a>
<a href="#" class="myButton" id="aud1">Audio 1</a>
<a href="#" class="myButton" id="aud2">Audio 2</a>
<a href="#" class="myButton" id="aud3">Audio 3</a>

我的 JS 文件是这样为我的音频文件创建变量的。

    var aud1 = new Audio();
var aud2 = new Audio();
var aud3 = new Audio();

与此功能一起,当选择具有相应名称的按钮时开始播放。

    function aud1play() {
aud1.src = "mp3/aud1.mp3";
aud1.play();
}
document.getElementById('aud1').addEventListener('click', aud1play);

//you get the trend

要停止我的音频,我有以下功能:

    function audstop() {
aud1.pause;
aud2.pause;
aud3.pause;
document.getElementById('stopbutton').addEventListener('click', audstop);

最佳答案

var audios= Array.prototype.map.call(document.getElementsByClassName("myButton"),function(el){
var audio=new Audio();
audio.preload="none";//=> not preloaded
audio.src="mp3/"+el.id+".mp3";
el.onclick=audio.play.bind(audio);
return audio;
});

只需迭代按钮,创建一个具有正确 src 的音频元素,并将 onclick 监听器绑定(bind)到其播放函数。然后映射音频元素。

document.getElementById('stopbutton').addEventListener('click', function(){
audios.forEach(audio=>audio.pause());
});

要停止,只需迭代音频元素并在每个元素上调用停止函数...

关于javascript - 使用当前音频 javascript 创建播放/暂停功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44083628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com