## 更新听过和没听过的歌曲分类方法 > 使用foobar几乎就不可能离开媒体库,虽然foobar的播放列表功能也很强大,但是依然不可能离开媒体库。比如,系统默认的评级、播放次数只能对媒体库中的文件生效、在媒体库中能灵活的管理电脑中的所有音乐文件等等。媒体库有基于dui和cui的,这是基于cui的媒体库。 > 下面介绍几个最常见的分类排序方式,建议大家看看标题格式化(title formating)代码,这样自己可以对媒体库进行灵活的自定义。 ### 按播放次数(by play_count): `$num(%play_count%,3)|$if2($caps(%artist%),Unknown Artist)|$if2(%ALBUM%,%directoryname%)[ '['%DATE%']']|['['#$tracknumber()']' ]%title%[ '['%length%']']` ### 按专辑(by Album): `$ if2(%album%,$char(13)Unknown Album)[ '['%album artist%']']|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%` ### 按艺术家(by artist): `$if2(%<artist>%,$char(13)Unknown Artist)|$if2(%album%,$char(13)Unknown Album)|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%` ### 按流派(by genre): `$ if2(%<genre>%,$char(13)Unknown Genre)|[%album artist% - ]$if2(%album%,$char(13)Unknown Album)|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%` ### 按年代(by year): `$if2(%<date>%,$char(13)Unknown Date)|[%album artist% - ]$if2(%album%,$char(13)Unknown Album)|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%` ### 按评级(by rating): `$if2(%rating%☆,$char(13)Unrated)|$if2(%<artist>%,$char(13)Unknown Artist)|%title%` ### 按文件编码方式(by codec): ``` $puts(tem,$upper($ext($if2(%__referenced_file%,%filename_ext%))))$if($stricmp($get(tem),),[%codec%],$get(tem))|[%album artist% - ]['['%date%']' ]$if2(%album%,$char(13)Unknown Album)|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title% ``` ### 按截短的一级目录(Truncate First Directory Level): ``` $puts(path,$replace($directory_path(%path%),\\,|$char(13))|%filename_ext% $ifgreater(%subsong%,0,|%tracknumber%.%title%,)) $substr($get(path),$add($strchr($get(path),|),1),$len($get(path))) ``` ### 按截短的二级目录(Truncate First 2 Directory Levels): ``` $puts(path,$replace($directory_path(%path%),\\,|$char(13))|%filename_ext% $ifgreater(%subsong%,0,|%tracknumber%.%title%,)) $puts(path,$substr($get(path),$add($strchr($get(path),|),1),$len($get(path)))) $substr($get(path),$add($strchr($get(path),|),1),$len($get(path))) ``` ### 按截短的三级目录(Truncate First 3 Directory Levels): ``` $puts(path,$replace($directory_path(%path%),\\,|$char(13))|%filename_ext% $ifgreater(%subsong%,0,|%tracknumber%.%title%,)) $puts(path,$substr($get(path),$add($strchr($get(path),|),1),$len($get(path)))) $puts(path,$substr($get(path),$add($strchr($get(path),|),1),$len($get(path)))) $substr($get(path),$add($strchr($get(path),|),1),$len($get(path))) ``` ### 按音乐是否听过分类: 应知乎网友提出的问题:你用什么软件管理音乐? 按音乐有没有听过来分类: ``` $ifgreater($num(%play_count%,1),0,$char(13)播放过的,$char(13)未播放过)|%title%[ '['%length%']‘] ``` ### 以播放次数5次为阶梯: ``` $ifgreater($num(%play_count%,1),5,$ifgreater($num(%play_count%,1),10,$ifgreater($num(%play_count%,1),15,$char(13)播放次数大于15次,$char(13)播放次数大于10次小于15次),$char(13)播放次数大于5次小于10次),$char(13)播放次数小于5次)|%title%[ '['%length%']'] ``` ## 参考来源: [古意人Blog-foobar媒体库中常用的分类排序方式代码集合](http://www.guyiren.com/archives/195)