Foobar界面入门.docx
《Foobar界面入门.docx》由会员分享,可在线阅读,更多相关《Foobar界面入门.docx(12页珍藏版)》请在冰豆网上搜索。
Foobar界面入门
Foobar2000界面入门:
认识Foobar的UI系统,熟悉三种主流界面插件
如果你想对Foobar做任何界面上的操作,无论是风格样式还是按钮行为,列表功能还是图片显示,都最好先读过下面的文字,否则你很可能在接下来的操作中处处碰壁,搞得稀里糊涂。
认识Foobar的界面系统
Foobar是高度可定制的软件,它的各项功能都尽量实现独立的模块化,也就是独立成一个个的插件,它的界面的也是一样。
Foobar的整个界面系统,包括你能看到的窗口边框内的所有东西,从菜单按钮到列表样式,全都是“外包”给一个插件负责的,这个插件负责整个Foobar界面的描绘,而真正的Foobar只提供最核心的功能和命令,以供插件调用,所以当此插件缺失时,Foobar将由于没有界面系统而无法启动。
这类插件,我们通常称之为“界面插件”或“UI插件”,它们的命名规则一般是foo_ui_*.dll。
界面插件
界面插件不只有一个,现在主流的界面插件有三个:
DefaultUserInterface,译名:
默认用户界面,文件名:
foo_ui_std.dll,论坛里常简称为“DUI”。
ColumnsUI,译名:
分栏界面,文件名:
foo_ui_columns.dll,论坛里常简称为“CUI”。
PanelsUI,译名:
面板界面,文件名:
foo_ui_panels.dll,论坛里常简称为“PUI”。
这三种界面插件都有很大的定制自由度,可以让你随意打造自己的界面。
但这三种界面插件的工作方式都完全不同,所以大部分界面问题都要分情况讨论,在不同的界面下问题和解决方法往往是完全不同的。
由于每个插件都是要接管Foobar的整个界面的,所以Foobar必然只可能同时使用一个界面插件。
这并不是说你不能把多个界面插件一起放进components目录下,你可以这样做,但这些插件中同时只可能有一个在生效、在负责界面(这也并不是说把多个界面插件同时放进components目录就是没有意义的,这个将在后面说明)。
第一次把多个界面插件放进components目录后启动时会弹出提示选择要使用的界面模块的对话框:
1.png(20.24K)
2008-5-1522:
43:
40
以后就不会再弹出。
此后如果需要切换界面模块,进入参数设置(Preferences)-显示(Display),右侧的下拉列表就可以切换,如下面的提示文字所说,需要重启后才能生效。
7.png(38.99K)
2008-5-160:
02:
49
而每个界面插件都会把自己的设置都放在参数设置(Preferences)对话框左侧的目录树中,显示(Display)分支下。
6.png(2.91K)
2008-5-1522:
43:
40
当一个界面在生效时,其他未生效的界面的部分参数设置将会失效,准确的说是负责整个界面的一些功能会失效,例如最小化到托盘等,所以对于这些需求,就需要到你当前正在生效的界面插件的参数有设置页去设置,在其他页面设置是无效的。
下面的内容是详细介绍的文字,如果你没有兴趣去深入了解,可以直接跳过到后面看总结部分。
界面插件的插件——面板插件
Foobar的每种界面,都是由很多个面板构成的,例如菜单、播放按钮、播放列表等,都是面板,你可以随意调用这些面板来填充界面,并实现一些功能和应用。
每个界面插件都会自带一些面板以供用户使用,但这一般都是些很基本的面板,如播放列表等。
但是,每个界面插件,都是可以让第三方插件来提供新的面板的(DUI现在对此很是消极),即“插件的插件”。
这些插件的作用就是给界面插件增加一些其他的可用面板(如歌词面板),插件载入后面板即可调用,和界面插件自带的面板没有区别。
界面插件将这些面板按照用户定义的位置和大小放好,而后这些面板内的显示内容和行为就完全由相应的面板插件来负责了。
下文中我将这种面板称为“外插面板”。
值得注意的是:
CUI和PUI的面板插件是通用的。
能在CUI下调用的面板在PUI下一样可以调用,反之亦然。
而且,这种通用并不仅限于第三方插件提供的面板,连CUI和PUI所自带的面板(如各自带的播放列表面板),也是可以互相通用的,CUI下可以调用PUI提供的SCPL面板,PUI下也可以调用CUI的播放列表切换器面板。
虽然,当一个界面在生效时,其他未生效界面的负责整个界面的一些功能会失效,但它们的自带面板的选项还是依然有效的,因为这些选项只针对那个面板内部的显示内容而已。
所以,虽然Foobar的界面上同时只可能只有一个界面插件在生效,但此时其他界面插件也不是没有意义的,只是它们不是主管了而已。
但是,所有这些插件在DUI下却是不能调用的,DUI的面板插件一样也不能为CUI和PUI所调用,DUI的面板插件和CUI、PUI是完全独立的(所以DUI下无法将歌词面板嵌入界面内,因为歌词插件只有通过外插获得),所以,当DUI不是当前正在生效的界面插件时,DUI的参数设置页就整个都处于不可用的状态。
不过,我这里所说的“调用”,都是指将面板嵌入界面,DUI的面板虽然不能嵌入CUI和PUI的界面,但它们都可以以独立窗口的状态显示,因为这个独立的窗口并不会受到当前界面插件的控制,所以在CUI或PUI界面下,也是可以使用DUI界面的,只是无法嵌入界面,只能以独立窗口的状态看而已。
CUI和PUI的面板插件的命名规则通常为foo_uie_*.dll。
CUI和PUI的面板插件非常多,例如:
专辑图片面板foo_uie_albumart.dll、专辑列表面板foo_uie_albumlist.dll、歌词秀面板foo_uie_lyrics.dll,等等等等。
这些第三方面板大大的提高了Foobar的功能和界面自由度。
而DUI的面板插件则非常少,基本上除了官方提供的一个外,就没有了。
三个界面的特点和相互之间的区别
DefaultUserInterface(默认用户界面)
2.png(108.42K)
2008-5-1522:
19:
49
简介
DUI是官方原版里自带的界面插件,也是官方主推的界面。
官方原版的下载启动后看到的就是这个界面。
这个界面的特点就是简单(虽然0.9.5以后的DUI比以前复杂了许多,但和CUI和PUI比起来还是相当简单的)、速度快,无论启动速度还是操作反应速度都是三种界面插件中最快的。
DUI界面的整体风格样式必然是跟随Windows系统主题的,不能自定义样式,用户能做的,就是像堆积木一样的堆砌各种面板。
自带面板
DUI插件自带的面板很多,很全面,这也是跟它拒绝外部面板,坚持走独立自主的道路有关吧~~~在这些面板中最主要的Containers(容器)类中的面板,基本都和CUI类似(其实0.9.5以后的DUI明显借鉴了很多CUI的东西),这也决定了它整个界面的排布结构也和CUI基本类似。
其他的面板一般在CUI和PUI下也有替代品(外插面板),但有几个面板是无法替代的。
最典型的几个,首先是频谱面板,DUI的频谱面板很多很专业,其中最为用户所称道的Spectrogram(声谱)面板,常用于分析音频的质量和有损程度,是继承于0.8下的“简单频谱”插件的效果,这个面板在CUI和PUI下是无法调用并嵌入界面的,只能以独立窗口的状态显示。
5.jpg(57.40K)
2008-5-1522:
19:
49
其次是SelectionProperties(选择的属性)面板,虽然在CUI和PUI下有Trackinfo或TrackDisplay(PUI自带的面板)等面板可以模拟,但它实时编辑字段的功能现在在CUI和PUI下还无法实现。
还有一个就是播放列表面板,DUI的列表面板的功能略为欠缺,比如不能高亮当前播放曲目,只能用一个“Playing”列里的小箭头来提示,但它对列表分组的支持比CUI要好一些。
由于DUI的面板基本全是自带的,不是自带也是都官方的,所以DUI面板有一个很方便的特性,就是整体颜色风格的定义非常方便,所有的面板默认都会使用一个全局性质的颜色设置,一次性就可以设置好整个界面,而不用像CUI或PUI一样为每个面板每个细节分别设定。
外插面板
DUI的外插面板基本上只有官方自带的foo_albumlist,是一个和foo_uie_albumlist十分相似的媒体库视图面板(当然也是”借鉴“~~~)。
导入和导出
DUI的界面配置可以导出为*.fth文件,里面保存了整个界面的所有设置,载入即可重现整个界面。
ColumnsUI(分栏界面)
3.png(159.69K)
2008-5-1522:
19:
49
简介
CUI是由musicmusic开发的界面插件,它一直都十分流行,虽然现在PUI的华丽吸引了很多用户,但比起稳定性和完善性,CUI依然是目前最出色的界面插件。
CUI界面的整体风格样式也是跟随Windows系统主题的,用户能做的,基本上也是像搭积木一样的堆砌面板,只不过CUI能使用的面板更多,更强大,也更复杂。
(其实,通过在CUI中嵌入PUI面板或PanelSplitter等面板,可以让CUI不露出它Windows主题的部分,从而在表面上使CUI脱离Windows主题,这的确是可以的,只不过不是很有必要,大部分用户使用的CUI,还是保持着Windows的主题风格。
)
自带面板
CUI的界面结构和DUI很相似(其实是DUI“借鉴”了CUI),都是以水平或垂直的分离器为容器来排布面板的。
在CUI0.3以上的版本中,自带面板已经很全面,专辑封面和媒体库视图等面板都加入进来了。
其他的还有菜单、按钮和各种条子等原有的常用面板。
值得一提的是CUI的播放列表面板,CUI的列表可定制性非常强,但它的定制难度也远比DUI高,列表的样式和显示文字全要靠脚本写出来,这需要用户对Titleformating脚本有充分的了解。
CUI还自带了一个“NG列表”,支持分组功能,但这个分组功能实在很一般,不支持多分组方式切换,唯一的特色是支持多级分组。
外插面板
比起自带面板,外插面板才是CUI最大的特色和长处,这些插件都可以到置顶的插件收集中帖挑选,这里就不做介绍了。
导入和导出
CUI的配置可以导出为*.fcl文件,导出的内容可以选择,标题栏、状态栏、列表配置和界面布局等都可以选择导出,导入时也是一样可以选择导入。
FCL文件中的界面布局配置,对外插面板只能保存它的配置,不可能保存插件本身。
所以导入FCL中的布局配置时,需要另外将用到的面板插件配齐,才能正常的重现界面,否则在界面上会出现面板缺失。
(绝大部分情况下,导入FCL文件需要配齐的插件都不苛求语言版本,但如果在该FCL布局中嵌入了PUI面板并且在其中绘制了调用Foobar命令的按钮,或者调用了外部插件,那么Foobar核心(foobar2000.exe文件)或调用的插件也需要语言版本的正确,因为这相当于使用了PUI界面,就要遵守PUI的规则,详细可以看下面的PUI注意问题中的第一个。
不过现在这种配置还是极少的)
另外在这里也需要提一下*.fcs文件,FCS文件是老版本CUI中使用的配置导出格式,里面只包括了列表的全部脚本配置,在新版的CUI中对FCS文件也留有良好的支持,可以直接进行导入。
在DUI和CUI中,都不能在界面中使用外部图片,除非使用第三方面板插件。
PanelsUI(面板界面)
4.jpg(145.78K)
2008-5-1522:
19:
49
简介
PUI是由terrestrial开发的界面插件,它可以让用户在界面上肆意使用图片,所以可以实现很炫的效果,因此也赢得了很多的用户。
现在论坛里大部分花哨的界面都是基于PUI开发的。
terrestrial在PUI之前在开发的是foo_trackinfo_mod和foo_uie_single_column_playlist两个插件,后来他索性直接将两个插件合并,开发了一个全新的界面插件,也就是PUI插件,foo_trackinfo_mod被移入PUI成为TrackDisplay面板,foo_uie_single_column_playlist也被移入并成为SingleColumnPlaylist面板,此后这两个插件就停止更新,转入PUI中继续开发了。
后来,在2007年年中,PUI的开发突然停止,原因是作者terrestrial在官方论坛上与其他开发者发生方向上的严重分歧,并从此“失踪”,此后再未在官方论坛上出现,未开发完善的PUI插件也从此停止更新。
再后来,Foobar的官方在0.9.5.3版开始,去除了对PUI插件的支持(同时也去除了很多其他插件的支持),PUI从此不能在Foobar上使用,现在不可能,以后也不可能了,PUI的历史就此走到尽头。
所以,如果你要使用PUI,你的Foobar版本最高只能用0.9.5.2。
由于PUI是不完善的,所以它的bug和造成的崩溃也屡见不鲜,稳定性的确比较糟糕。
现在一般认为,兼顾功能与稳定性的版本是0.14.9(不过这并不是说让大家都去换这个版本,这个将在后面说明)。
PUI的界面结构和CUI或DUI完全不同,它的整个界面都是由脚本绘制而成,由脚本指定面板和图片的显示,所以它的自由度极高,界面编辑的难度也极大,它要求用户必须掌握Titleformating脚本语法和PUI脚本语法,制作PUI界面基本就是在编程序。
PUI也由于这样滥用Titleformating脚本而广受指责,事实也证明,由于滥用本来根本就不是为绘制界面而开发的Titleformating脚本,PUI的界面绘制效率很低,复杂(完善的界面基本都算“复杂”)的PUI界面操作延时都很明显。
自带面板
PUI的自带面板只有三个:
TrackDisplay(歌曲显示)、SingleColumnPlaylist(单栏列表,常简称为“SCPL列表”)、LibraryFilter(媒体库过滤器)。
TrackDisplay是PUI中最基础的面板,基本上是“万能”面板,它可以显示任意的文字和图片,并可以内嵌子面板,自己也可以层层嵌套,是PUI界面的主要框架。
SingleColumnPlaylist是PUI的播放列表面板,这是个非常强大的播放列表,也非常的复杂。
不只是它的文字或图片的内容和样式,就连它的列表分组机制,都非常复杂而强大,PUI的列表分组功能远超CUI和DUI的列表,如果能熟练的掌握好SCPL的列表分组功能,将会给列表整理带来极大的便利。
LibraryFilter是用来浏览媒体库的面板,它的浏览模式和albumlist相似,只不过它把多种视图模式都同时放在了根目录下的多个组内,并且加入了“与”和“非”的过滤功能。
不过个人认为用它来浏览的效率还不如albumlist来的高,主要由于它反应速度较慢且不支持抓拖等,它的优势在于可以在列表中显示各种图片,如专辑图片和艺术家图片等。
由于PUI界面极大的自由度,所以制作粗糙的PUI界面往往会缺失很多Foobar原有的功能,其实Foobar本身并没有缺失这些功能,只是在PUI的界面上,PUI的作者由于考虑不周或过度的追求凑出一个好看的预览图,并没有给出相应的面板支持。
这种现象现在还十分普遍……
外插面板
PUI兼容所有的CUI外插面板,除了CUI自带的Splitter(分离器)面板不能调用外,CUI能调用的所有面板,PUI也能调用,只不过这个调用必须通过脚本实现。
导入和导出
PUI的配置可以导出为*.pui文件,里面保存了整个界面的脚本和各个面板的配置。
在导入PUI时,同样需要配齐所用到的插件(导入PUI的注意事项比较多,详见后面”总结“中的第3个问题),否则界面上会出现面板缺失。
支持导出使得PUI这种使用难度极大的插件也可以为普通用户所用,只要导入别人做好的PUI文件即可实现好看的效果。
PUI有几个问题需要格外注意:
第一:
插件与核心语言版本要求严格。
由于PUI脚本语法的原因,绝大部分PUI对Foobar及其插件的语言的要求是非常严格的(现在,除了Elite可以兼容中英文核心和面板、foolite可以兼容中英文核心外,没有多语言兼容的PUI配置),要载入PUI,不但要备齐所有它需要的插件,而且这些插件以及Foobar核心(foobar2000.exe文件)的语言版本绝对不能搞错,现在绝大部分国外的PUI界面用的都是全英文环境,你也必须同样使用全英文环境才能正确还原它,而国内一些界面使用中文插件或核心,你也需要用一样的环境去载入,否则就会出现面板或功能的缺失。
另外,其实PUI对面板插件语言版本的苛求实际上是由于它引用面板是靠面板的名字引用的,如果名字被汉化(或他国语言化),PUI就无法正确引用到面板,而现在的汉化者基本都开始注意这个问题,相当多的插件在汉化的时候并不汉化面板名,这种汉化版的插件也是可以被正常的调用的。
所以,也并不是说完全的不能对国外的PUI用中文版插件,只要下载插件的时候看好,如果它是未汉化面板名的,就可以使用。
例如现在Asion汉化的PUI插件,就没有汉化面板名(TrackDisplay等),这样虽然它是汉化版,但依然可以和英文的一样正确载入各种界面。
第二:
0.13与0.14不兼容。
PUI0.13.x版本与0.14.x版本的脚本语法不同,这会导致它们生成的PUI文件不能通用。
也就是说,在0.13.x版本下写的PUI文件不能在0.14.x下导入,反之亦然。
乱导入不但会导致界面显示错误,还会直接破坏PUI文件,使这个PUI文件即使回到正确的版本下也无法再正常还原界面,所以,经过了错误版本导入过的PUI文件是不能用的,需要用完好的文件替换它。
号称最稳定的0.14.9版本,其语法规则其实还是很接近于0.13的,不过它们毕竟还是有区别的,不能随便混用。
所以,虽然0.14.9被认为是最稳定的版本,也并不是说大家都要换用0.14.9,具体使用哪个还是要看自己的PUI的要求,不可乱用。
只有PUI的开发者,也就是只有当你打算要自己做一个PUI配置的时候,才可以根据这个稳定性的说法来选择要使用的版本。
第三:
稳定性差。
PUI是不完善的,它的稳定性很成问题,大部分用户在使用PUI过程中都会出现或多或少的崩溃,这是不可避免的。
有些用户在PUI界面上点右键-设置时必然出现崩溃,这是一个很常见的问题,也是一个非常棘手的问题,可以尝试使用Applocale,具体教学帖在这里
Applocale的成功率不高,如果没有成功,你就认命吧,到现在还从未发现有除重装系统外的其他解决办法,这就是系统问题,尚未找到解决方法。
还有些用户会出现“白板问题”,也就是界面显示为PUI默认样子的,这种问题,如果排除了各种插件和核心的版本和语言问题(其实绝大部分人都是这几个问题,详见下面”总结“中的第3个问题),也是一种很棘手的问题,往往是同样的打包,有人正常,有人就白板,而且还是有的配置白板,有的不白板,这个也是暂无办法的,如果你实在白板,就只有放弃这个界面了,好在有这种问题的用户还是非常少的。
第四:
不能用在Foobar0.9.5.3以及更高的版本上。
从0.9.5.3起,Foobar已经不再支持PUI插件,如果你要使用PUI,你的Foobar版本最高只能用0.9.5.2。
===总结=====================
经过了啰嗦而繁杂的介绍,下面我总结一下根据本帖中的知识可以解答的常见问题,以便一些懒得看前面文字的人也可以立刻解决问题。
1、fth文件如何使用?
答:
下载(官方自带)DefaultUserInterface(默认用户界面,文件名:
foo_ui_std.dll)插件。
在参数设置-显示里选择使用默认用户界面,重启Foobar,进入参数设置-显示-默认用户界面,右边选择”导入主题“,选择你的fth文件即可;或者直接将fth文件拖进Foobar窗口即可。
2、fcl/fcs文件如何使用?
答:
下载ColumnsUI(分栏界面,文件名:
foo_ui_columns.dll)插件,然后在参数设置-显示里选择使用分栏界面,重启Foobar,进入参数设置-显示-分栏界面-主要,如果你是FCL文件,选择”FCL导入与导出“中的”导入“,选择你的FCL文件,然后选择要导入的配置部分即可;如果你是FCS文件,选择”FCS导入“中的”导入“,然后选择你的FCS文件即可。
3、pui文件如何使用?
为何pui载入出现白板?
为何pui载入后界面中有很多按钮按了无效?
答:
严格按照作者给出的说明,下载作者要求版本的PanelsUI(面板界面,文件名:
foo_ui_panels.dll)插件,备齐作者要求的其他所有插件,并保证这些插件的语言版本与作者的要求一致,保证Foobar核心(foobar2000.exe文件)版本在0.9.5.2以下(包括0.9.5.2),保证核心的语言版本与作者的要求一致(核心语言版本错误的典型症状就是按钮失效),保证Foobar2000文件夹在全英文路径下(否则PUI会出现白板)。
将PUI文件和其附带的文件或文件夹一起放入PanelsUI目录下(如果作者把它们都放在了一个文件夹内,就把文件夹整个放进去,也是一样的),然后进入参数设置-显示-面板界面-布局,下拉菜单中选择你刚才放进去的PUI文件即可。
如果你严格按照前面的操作做了,仍然是白板的话,请重新下载/解压PUI文件并覆盖,然后重新载入该PUI文件,如果仍然白板,那很抱歉,这个PUI界面你是用不了了,只有放弃,这个真的是找不到办法。
至于其他的像专辑图片显示等需求,就比较复杂了,不同的界面配置方法完全不同(其实本来可以相同的,terrestrial特意给用户准备了存储于CFG文件中的图片路径变量,可以让用户不管换什么PUI界面都可以按自己的规则显示图片,只可惜现在浮躁的PUI作者基本都不对它做任何支持……),你需要仔细阅读作者给出的说明,按说明操作。
再其他的一些修改和设定,就涉及到PUI制作和编辑的内容了,不属于本帖讨论范围,故就此打住。
4、为何在pui界面上点右键设置会发生崩溃?
答:
PUI天生稳定性不好,这个问题可以尝试使用Applocale,具体教学帖在这里,Applocale的成功率不高,如果没有成功,你就认命吧,到现在还从未发现有除重装系统外的其他解决办法,这就是系统问题,尚未找到解决方法。
5、如何最小化到托盘?
为何最小化到托盘无效?
答:
进入参数设置-(你用的界面)里面去找设置,也就是说如果你用着DUI界面,就到参数设置-显示-默认用户界面里去找设置,如果是PUI界面,就到参数设置-显示-面板界面里去找设置,走错地方必然是无效的。