Javascript:从数组中随机播放歌曲(列表)
我想在网站上随机播放一首歌。曲调很短(最多几秒钟,不需要预加载或缓冲) 这部分功能正常,歌曲的数量可能是无限的,因为Javascript:从数组中随机播放歌曲(列表),javascript,audio,random,shuffle,Javascript,Audio,Random,Shuffle,我想在网站上随机播放一首歌。曲调很短(最多几秒钟,不需要预加载或缓冲) 这部分功能正常,歌曲的数量可能是无限的,因为tunes.length会自动统计所有歌曲 document.write在屏幕上显示随机歌曲URL的URL tunes = new Array( '"http://example.net/abcd.ogg"', '"http://example.net/efgh.ogg"', '"http://example.net/ijkl.ogg"' ) var audiopath = (tu
tunes.length
会自动统计所有歌曲
document.write
在屏幕上显示随机歌曲URL的URL
tunes = new Array(
'"http://example.net/abcd.ogg"',
'"http://example.net/efgh.ogg"',
'"http://example.net/ijkl.ogg"'
)
var audiopath = (tunes[Math.floor(Math.random() * tunes.length)])
document.write (audiopath)
当URL被定义为常量时,这一部分也起作用
var song = new audio('http://example.net/abcd.ogg');
song.play();
当我尝试用变量audiopath
替换常量URL时,它无法播放可能是语法有问题吗? 我试着在URL
“”“”
或“
最好在歌曲完全加载后开始播放。大概是这样的:
let loaded = false;
const song = new Audio();
song.addEventListener('loadeddata', function()
{
loaded = true;
song.play();
}, false);
song.addEventListener('error' , function()
{
alert('error loading audio');
}, false);
song.src = tunes[Math.floor(Math.random() * tunes.length)];
谢谢,我试试看。对于较长的歌曲,它看起来更通用。我的做法有所不同,将random/shuffle函数保存为一个单独的.js文件,并将其用作播放器中的音频源。html文件调用var audio=newaudio(“rndorder.js”);音频播放();js文件返回var audio=new audio(tunes[Math.floor(Math.random()*tunes.length)])(我甚至不知道.js文件中是否需要这一行,但它可以工作)。
let loaded = false;
const song = new Audio();
song.addEventListener('loadeddata', function()
{
loaded = true;
song.play();
}, false);
song.addEventListener('error' , function()
{
alert('error loading audio');
}, false);
song.src = tunes[Math.floor(Math.random() * tunes.length)];