更新
时隔一年,今晚在看《Java编程》一书时,突然发现Java集合类中,Collections类有一个Collections.shuffle()方法(shuffle就是洗牌的意思),可以随机的打乱List,算法思想其实也差不多就是下面所描述的这个过程,有兴趣可以看看shuffle方法的源码。这样的话,也就不需要自己手动的来实现这个过程了。发现提升最快还真是多看看书,自己折腾半天不知其实早是前人玩透了的东西。
前言
播放器大致共有三种播放模式:列表循环、单曲循环、随机播放。前两者不难实现,所以这里主要讲到的是随机播放的思想,也同时附上实现。实现的例子是Winform+WndowsMediaPlayer控件(关于WMP控件的添加方式与使用,在我的其他博客中有写到),程序下载在后边给出。
一、随机播放
1.概念
理想的随机播放模式:在一轮播放中,歌单中所有的歌曲只播放一次,播放次序随机(一轮播放是指,例如播放列表中有10首音乐,每首音乐播放一次,共10次,称为一轮。一轮的概念在之后的实现中有比较重要的作用)。
2.实现思想
通过概念可知我们要实现两点:①只播放一次②次序随机。所以生成一个随机序列,再按序列的值播放歌曲,就可以很好的达到以上两点。好了,主要的实现思想有了,我们再考虑一下细节。
1)随机List怎样生成?
- 初始化List。需要定义List的长度(播放列表中歌曲的总数),List的初始值&