[1 楼] metaldz
[泡菜]
21-11-6 19:00
一个播放列表内的歌曲,有一些被播放次数很多,有一些被播放次数少(都有※※播放次数记录),然后此时播放器开始播放,它会优先自动给与播放次数少的曲目更高的随机播放权重 ,最终做到整体上列表内所有曲目被听次数慢慢趋近一至,达到不少听某些曲目的目的 本帖最后由 metaldz 于 2021-11-6 19:03 编辑
|
[6 楼] resunokin
[泡菜]
21-11-8 11:24
抛砖引玉,再提供一个思路。你是高手,最好能总结造福大家。
Display->Default User Interface -> Playlist view 加一个列名比如Freq, Pattern=$div($mul(%play_count%,100000000), $sub(737846,$add($mul($year(%added%),365),$mul($month(%added%),30),$day_of_month(%added%))))
然后根据这个列自动排序。
|
[5 楼] metaldz
[泡菜]
21-11-8 06:58
resunokin 发表于 2021-11-7 03:49  用FOOTBAR2000,如果有经验的话,可以试试在自动列表里用这样的算法,可以根据需要改变。这里用了加※※均,参考了歌曲加入日期和过去一年播发次数。
$sub(10000000,$div($mul(%play_count%,100000000), $sub(737846,$add($mul($year(%added%),365),$mul($month(%added%),30),$day_of_month(%added%)))))
如果不明白上面所说,得花很多时间说明白,略过即可。 我把你这个代码修改了一下, $add($mul(%play_count%,100), $substr(%last_played% ,18,19)) 截取最后一次播放时间最后两位秒数 以此当作一个随机变量 再把播放次数乘以100之后加上这个两位数的秒数得到一个后两位是最后播放时间秒数,两位往前是播放次数 按这个新的数排序 小数在前边 让播放次数少的在前边 并且播放次数相同时 按照最后一次播放时间秒数做一个随机判定 达到同次数曲目内的随机化 这样正序播放此列表就可以达到我题目中的一部分要求(只能播放少次的并且有一定随机性,但无法做到先把少的播放次数追赶上多的然后再自动一起随机的复杂目的) 最后效果如下图 本帖最后由 metaldz 于 2021-11-8 07:08 编辑
|
[4 楼] metaldz
[泡菜]
21-11-7 14:44
resunokin 发表于 2021-11-7 03:49  用FOOTBAR2000,如果有经验的话,可以试试在自动列表里用这样的算法,可以根据需要改变。这里用了加※※均,参考了歌曲加入日期和过去一年播发次数。
$sub(10000000,$div($mul(%play_count%,100000000), $sub(737846,$add($mul($year(%added%),365),$mul($month(%added%),30),$day_of_month(%added%)))))
如果不明白上面所说,得花很多时间说明白,略过即可。 是在这个框里玩代码嘛?代码官方help
|
[3 楼] metaldz
[泡菜]
21-11-7 14:35
resunokin 发表于 2021-11-7 03:49  用FOOTBAR2000,如果有经验的话,可以试试在自动列表里用这样的算法,可以根据需要改变。这里用了加※※均,参考了歌曲加入日期和过去一年播发次数。
$sub(10000000,$div($mul(%play_count%,100000000), $sub(737846,$add($mul($year(%added%),365),$mul($month(%added%),30),$day_of_month(%added%)))))
如果不明白上面所说,得花很多时间说明白,略过即可。 无插件的foobar2000支持你所说的“自动列表” 还是 这个自动代表是某个 component插件 扩展的功能? 代码我很强 只要你给我带到写代码这个窗口 我可以完美写出任何 逻辑
|
[2 楼] resunokin
[泡菜]
21-11-7 03:49
用FOOTBAR2000,如果有经验的话,可以试试在自动列表里用这样的算法,可以根据需要改变。这里用了加※※均,参考了歌曲加入日期和过去一年播发次数。
$sub(10000000,$div($mul(%play_count%,100000000), $sub(737846,$add($mul($year(%added%),365),$mul($month(%added%),30),$day_of_month(%added%)))))
如果不明白上面所说,得花很多时间说明白,略过即可。
|