Javascript JS或jQuery函数在播放时选择本地音频曲目?

Javascript JS或jQuery函数在播放时选择本地音频曲目?,javascript,html,jquery,audio,Javascript,Html,Jquery,Audio,现在我有一个音乐应用程序,它有一些本地mp3文件,当你点击divs时播放,这些文件链接到音频,并通过onClick函数播放方法触发。还有一个滚动屏幕,显示歌曲的艺术家和标题 音频存储在html中的一个div中,与保持onclick按钮的div分开,但它们与播放特定歌曲的div共享一个类名 我使用了这个功能:jquery版本是为了洗牌音频文件,并在洗牌按钮上附加了一个点击处理程序,以便播放一首随机歌曲,这很有效!,但现在我希望能够找到正在播放的歌曲,并在屏幕上显示歌曲信息标题/艺术家,并设置按钮的

现在我有一个音乐应用程序,它有一些本地mp3文件,当你点击divs时播放,这些文件链接到音频,并通过onClick函数播放方法触发。还有一个滚动屏幕,显示歌曲的艺术家和标题

音频存储在html中的一个div中,与保持onclick按钮的div分开,但它们与播放特定歌曲的div共享一个类名

我使用了这个功能:jquery版本是为了洗牌音频文件,并在洗牌按钮上附加了一个点击处理程序,以便播放一首随机歌曲,这很有效!,但现在我希望能够找到正在播放的歌曲,并在屏幕上显示歌曲信息标题/艺术家,并设置按钮的动画,单击该按钮可以播放这首特定的歌曲

到目前为止,每首歌曲都有自己的播放功能和为屏幕信息编写的独特js,这些信息在单击时被触发

我尝试过为歌曲创建一个对象数组,并使用onplaying方法尝试从shuffle函数中选择当前播放的歌曲-但我真的被卡住了

长话短说,我想通过shuffle函数识别正在播放的歌曲,并附加一个处理程序,该处理程序将把保存动画的类应用到歌曲标题div,以便用户知道它是哪个按钮,并触发其信息在屏幕上滚动

这是对shuffle函数jquery的调用:

$("#shuffleBTN").on("click", function() {
    $("audio").shuffle();
    $("audio").get(0).play();
});
这是我认为不需要包含所有OBJ的对象数组:

const tracks = [
    {
        "title": "My Rifle, My Pony, and Me",
        "artist": "Dean Martin",
        "source": "songs/My Rifle, My Pony and Me - Dean Martin.mp3"  
    },

    {
        "title": "Unicorn",
        "artist": "Four Tet",
        "source": "songs/Four Tet - Unicorn.mp3"  
    },

    {
        "title": "Prospect Hummer",
        "artist": "Animal Collective feat Vashti B",
        "source": "songs/ProspectHummer.mp3"  
    },
]
我想这可能会成为阻碍?它是一个处理程序,可防止同时播放多首歌曲

document.addEventListener('play', function(e){
    var audios = document.getElementsByTagName('audio');
    for(var i = 0, len = audios.length; i < len;i++){
        if(audios[i] != e.target){
            audios[i].pause();
            // audios[i].currentTime = 0;
        }
    }
}, true);

请让我知道,如果有任何更多的细节,我可以提供一个解决方案-谢谢

理想情况下,您希望每个曲目和播放函数的HTML都是通用的,并从数组中填充相关数据

在宽泛的笔划中,定义一个模板:一个包含HTML的字符串,其中包含来自每个数组元素的数据的占位符。然后,您遍历数组,将合并的HTML作为字符串输出。然后,如有必要,您可以选择使用一些HTML分隔符来创建数组,例如。现在,您有了一个包含所有标记的字符串,您只需要创建一个容器div,其中包含一个可以获取的id,您就可以将字符串添加为容器的子级。比如,$'containerID'.appendtracksHTML

您可以为每首曲目指定一个id,您的播放函数最好使用提供的id设置一个类,就像在当前播放的曲目上播放一样。您可以先按类别查找是否有任何曲目具有该类别,然后在添加和播放所选类别之前暂停并删除该类别。您可以根据该类创建样式

对于随机功能,您不需要任何花哨的插件。您可以使用一个简单的函数从数组中获取一个随机元素,并使用该元素的id调用play函数

我知道我不是在直接帮助回答这个问题,但在这种情况下,当您的设置需要先进行一些修复时,您正在寻找解决方案

const cowboySong = document.getElementById('cowboySong');
function playCowboySong() {           
cowboySong.play();
scrolling.innerHTML = `NOW PLAYING - MY RIFLE, MY PONY, AND ME - DEAN MARTIN`;
}