Life Is Random

  “Life Is Random,Give Chance A Chance”,这是iPod Shuffle著名的广告语。“生活随机演绎,予机会于偶然”,这也正应验了“Shuffle”这个品名——“洗牌”。

  生活总是在一次次洗牌,你永远无法预测下一秒会发生什么。也正是基于这一点,我一直喜欢用“随机播放”的方式来听音乐,永远不知道下一首歌是什么,直至它飘入耳廓。就像永远不知道下一秒谁会走入你的生活,谁会离开。也永远不知道下一秒,是通向天堂抑或坠入地狱的转折。也只有等到那一秒来临,才知道此时此刻是喜悦,还是悲伤、难过。

  好吧,扯远了,今天只想谈谈几种随机播放的方式,而无意于追忆其他。

  第一种方式是直接随机,用随机函数随机抽取一首歌曲来播放。这样的话,不管是点击“上一首”还是切换到“下一首”,都是切换到另外一首歌,而不能重新切回刚刚听完的歌曲。好吧,比较典型的例子就是“AIRPLAY”这款播放器了。

  第二种也算是直接随机,不过在第一种的基础上增加了记录播放过的曲目,这样可以切换回上一首,其他方面与第一种一样。貌似“千千静听”就是这样的。(不知道新版的改了算法没有,我用的是很老的版本……)

  这两种方式都会有一定几率出现连续播放一样的曲子,即便不一样,也有很大几率出现短期内出现过重复的曲目。而且这样的方式会造成不同曲目出现的概率亦完全随机,有的曲目出现概率很高,有些出现得很低。所以可以推测应该是使用了最方便快捷的“线性同余算法”,或者是以此为基础的其他方法。比如C语言的标准库中就是使用这种方法产生随机数,虽然产生的随机数是均匀分布,可是过于依赖上限。对于播放器而言,单一列表很少会有超过4位数的歌曲,所以很大程度重复。

  虽然我个人很喜欢这两个播放器,只是这种随机播放的方式不太完美。

  第三种就是对整个播放列表进行随机乱序排列,然后按照打乱之后的顺序来播放。这种方法本来是挺好的,很好的解决了曲目出现概率不均等和无法切回上一首的问题。可是这种模式下某一首歌的下一首都是固定的,如果对整个列表要听1一遍以上的话,不免厌倦,因为这与按序播放无异。我以前的那台昂达VX777就是这样,不过还好它每次重新开机后会再打乱一次。可是其他一些是千年不变的顺序,就这么乱序着按序播放。

  当未来可控且不可避免时,往往就没有了对未来的期待,似乎总是在走着,那无尽的循环……所以对于这种方式,会更加厌恶。

  第四种便是iPod Shuffle使用的方式,跟第三种一样也是对整个列表乱序之后再按序播放,不过每次轮完一圈会重新“洗牌”一次。这样下来就比之前的都更加完美一些,并且解决了上面提到的算法中的种种问题。这种随机算法,做到了“可以追溯,可以回忆”,即便年华已逝,也可回味那往昔之美好

  这正是我喜欢Shuffle这种设计理念的原因,不仅是外观,更喜欢这种内在的算法设计。一个好的设计,往往不仅仅是依靠外部的大气恢弘显山露水,恰恰相反,越是好的设计越是在于对细节的追求。苹果的设计理念也正是因为这人性化的一点,才受大众喜欢。(呃,那种纯粹为了跟风、显摆、炫富之类而去“喜欢”的除外。)

  Life Is Random,Give Chance A Chance。也许下一秒,会迎来能够让我不忆往昔的东西……

文章目录
|