如何更改此功能,以便每次单击只能播放一首随机歌曲?(JavaScript)
我基本上是使用HTML、CSS和香草JavaScript构建一个音乐生成器/播放器应用程序,每当用户单击特定音乐类型的特定div时,就会播放该类型的新歌。为了生成随机歌曲,我创建了以下JS函数:如何更改此功能,以便每次单击只能播放一首随机歌曲?(JavaScript),javascript,html,css,audio,audio-player,Javascript,Html,Css,Audio,Audio Player,我基本上是使用HTML、CSS和香草JavaScript构建一个音乐生成器/播放器应用程序,每当用户单击特定音乐类型的特定div时,就会播放该类型的新歌。为了生成随机歌曲,我创建了以下JS函数: const randomizeSongs = playlist => { let song = playlist[Math.floor(Math.random() * playlist.length)]; song.play(); } 我遇到的问题是当我尝试使用以下代码时:
const randomizeSongs = playlist => {
let song = playlist[Math.floor(Math.random() * playlist.length)];
song.play();
}
我遇到的问题是当我尝试使用以下代码时:
const pop = document.querySelector(".pop") // Div containing audio elements
pop.addEventListener("click", (e) => {
const popSongs = document.querySelectorAll(".pop audio");
randomizeSongs(popSongs);
})
该函数会像我想的那样,每次点击都会生成一首新歌,但之前点击生成的歌曲并没有停止播放。如何修改randomizeSongs函数,以便每次新单击只能播放一首随机歌曲?我想您正在寻找
暂停
()
还没有尝试过这个,但它看起来像:
let previousSong;
const randomizeSongs = playlist => {
if (previousSong) {
previousSong.pause();
}
let song = playlist[Math.floor(Math.random() * playlist.length)];
song.play();
previousSong = song;
}
没关系,它确实有用!我忘了添加“previousSong=song;”的部分。非常感谢你!