我目前有这个js代码:
audio.src = path + 'assets/music/'+(Math.floor(Math.random() * songs) + 1)+'.mp3'
在我的网站上,我有文件夹资产/ music / 1.mp3,2.mp3,3 .mp3,所以它 选择一首随机歌曲然后播放歌曲。 (的Math.random)
我不想使用math.random,因为有时候它会播放两次相同的音轨而且很烦人。
那么任何解决方案?
网站:http://selen.xyz javascript代码:http://selen.xyz/animate.js
答案 0 :(得分:1)
使用Array.prototype.slice()
创建包含文件路径的数组副本,创建空数组songs
,使用.splice()
调用Math.floor(Math.random() * copy.length)
以从{{1}检索随机项},从copy
移除所选项目,当copy
songs
为.length
原始数据arr
时,.length
应填充伪随机选择items,设置audio元素以将songs
数组中的项目用作songs
src
答案 1 :(得分:0)
var songs = 10,
last_song_id = localStorage.getItem('last_song_id'),
song_id;
do {
song_id = Math.floor(Math.random() * songs) + 1;
} while(last_song_id === song_id);
localStorage.setItem('last_song_id', song_id);
audio.src = path + 'assets/music/' + song_id;