我需要一個「隨機播放專輯」算法爲我的音頻播放器,如foobar2k。所以問題是:我有一個曲目列表,根據一些標準排序,以便具有相同專輯的曲目全部相鄰。現在,我需要能夠以「隨機播放專輯」模式播放播放列表中的歌曲,也就是說,如果下一首曲目來自同一專輯,請播放它,否則,請轉到下一張隨機專輯的第一首歌曲。如果用戶想要播放上一首曲目,請執行相同的操作,但是要後退。所以問題是:我怎麼知道以前的專輯是什麼?我真的不想保留播放專輯的歷史,或保留一個單獨的列表。隨機組算法
目前,我通過給每個軌道隨機洗牌索引實現規則的洗牌模式,以便通過查找最大洗牌索引小於當前且最小洗牌索引大於當前的軌道來找到前一個和下一個軌道。但它不適用於洗牌專輯模式。有人可以幫助我嗎?
樣品輸入:
Track 1, Album A
Track 2, Album A
Track 1, Album B
Track 2, Album B
Track 3, Album B
Track 1, Album C
Track 2, Album C
Track 3, Album C
比方說,當前軌道是軌道1,相冊A.下一曲目將是第2道,專輯A.下一曲目是不是來自同一個專輯,從這樣的第一軌道應該選擇隨機專輯,比如說,專輯1,專輯C.我現在正在做的是選擇下一首歌曲,就好像它是規則的隨機播放模式,然後轉到專輯的第一首歌曲,從而丟失了我從哪裏來的信息到這張專輯。所以當用戶想要去上一張專輯時,我不知道我是如何到達那裏的。希望讓問題更清楚。
謝謝。
您需要顯示示例輸入的示例輸入。 – Yehonatan 2010-11-20 15:17:33
如果你真的需要在非順序列表中回溯,你需要存儲歷史... – 2010-11-23 00:26:24