html - 我在一个页面上有多个 HTML 5 <Audio> 标签,我希望所有标签在播放另一个标签时都暂停

标签 html audio controls pause

我想我需要一个脚本来“获取”所有正在播放的 HTML5 音频控件并“暂停”它们,除了用户点击播放的那个。我已经看过并且可以只使用一个音频控件来处理简单的播放、暂停、停止,但是我的技能远远达不到编写我想要的多个音频控件的能力。音频控件是一个简洁的解决方案,并且与我当前的设计很好地集成在一起,我只需要帮助使其正常工作。用例:

https://aberaeronskies.com/页面加载并且没有播放任何所需的内容,用户单击音频控件标签上的播放并播放所需的轨道片段。用户点击另一个(有14个)开始播放,麻烦的是,第一个还在播放,这是不想要的;一个人可以点击所有这些,他们都会玩!

要求是脚本或电话或其他任何东西(我不是编码员,只是作为伴侣的免费赠品),当用户在 14 个轨道中的任何一个上单击播放时,它会暂停所有其他播放轨道。

我以为是这样:Pause all other players besides activated one. jQuery audio plugin for <audio> elementPlay selected audio while pausing/resetting others但我不能让他们工作。

这可能是无法做到的,我需要重新考虑多个轨道的整个呈现方式,如果是这样,关于在哪里看的进一步建议(除了上述内容)也会很有用。

非常感谢...

最佳答案

啊...
这有效

var curPlaying;
window.addEventListener("play", function(evt)
{
if(window.$_currentlyPlaying && window.$_currentlyPlaying != evt.target)
{
    window.$_currentlyPlaying.pause();
} 
window.$_currentlyPlaying = evt.target;
}, true);
$(function () {
$(".playback").click(function (e) {
    e.preventDefault();
    var song = $(this).next('audio')[0];
    if (song.paused) {
        if (curPlaying) {
            $("audio", "#" + curPlaying)[0].pause();
        }
        song.play();
        curPlaying = $(this).parent()[0].id;
    } else {
        song.pause();
        curPlaying = null;
    }
});
});

关于html - 我在一个页面上有多个 HTML 5 <Audio> 标签,我希望所有标签在播放另一个标签时都暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60252170/

相关文章:

audio - 将多个立体声MP3文件转换为它们的Mono WAV等效文件?

c++ - 如何更改复选框属性? C++/VS

c++ - 无法从 winapi 中的编辑控件获取文本

iphone - 将mp3转换为iPhone的caf文件

javascript - 混合批处理/jscript/hta : read 2 inputs in Jscript and pass them to Batch

html - 如何让div随着它的内容增长?

html - 从字符串中剥离 HTML 标签

objective-c - Flac 转换器 Objective-C?

java - Java Web 框架世界中的 ASP.NET Login 控件相当于什么?

javascript - html5 3d, Canvas ,three.js