html - 一次只允许播放一个音频元素

标签 html audio html5-audio

我在一个页面上有多个音频播放器,每个播放器都有一个播放和停止按钮。我遇到的唯一问题是,当您单击一个播放按钮,然后单击另一个播放按钮时,它们会在彼此之上播放。有人可以帮助我编写代码,当单击另一个播放按钮时我需要停止正在播放的任何歌曲 - 所以一次播放的歌曲永远不会超过一首?谢谢!这是我的代码:

$(document).ready(function(){ 
    $("#play-bt").click(function(){
        $("#audio-player")[0].play();
    })

    $("#stop-bt").click(function(){
        $("#audio-player")[0].pause();
        $("#audio-player")[0].currentTime = 0;
    })
})


$(document).ready(function(){
    $("#play-bt1").click(function(){
        $("#audio-player1")[0].play();
    })

    $("#stop-bt1").click(function(){
        $("#audio-player1")[0].pause();
        $("#audio-player1")[0].currentTime = 0;
    })
})

最佳答案

$(document).ready(function(){ 

    var allAudioEls = $('audio');

    function pauseAllAudio() {
       allAudioEls.each(function() {
          var a = $(this).get(0);
          a.pause();
       });
    }


    $("#play-bt").click(function(){
        pauseAllAudio();
        $("#audio-player")[0].play();
    })

    $("#stop-bt").click(function(){
        $("#audio-player")[0].pause();
        $("#audio-player")[0].currentTime = 0;
    })

    $("#play-bt1").click(function(){
        pauseAllAudio();
        $("#audio-player1")[0].play();
    })

    $("#stop-bt1").click(function(){
        $("#audio-player1")[0].pause();
        $("#audio-player1")[0].currentTime = 0;
    })
})

关于html - 一次只允许播放一个音频元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196979/

相关文章:

html - 如何切片PSD?

html - 具有动态高度的固定导航栏后的容器

MATLAB 不播放加载的 .wav 文件

html5-audio - Soundcloud 嵌入式 HTML5 播放器 - 如何关闭 "Play another track"?

javascript - HTML5 音频标签无法在移动设备上引发事件 `canplay`

css - 如何创建随页面长度动态增长的垂直分隔线

javascript - 在javascript中获取HTML + JS页面的下载大小

iphone - 在 iPhone 应用程序中播放连续声音

javascript - 如何在javascript中将原始数据转换为音频

javascript - 在 javascript/html 中取消关注选项卡上的静音选项卡音频