XBMC新版“扩展功能”简介
目录
|
本贴介绍将在即将发布的XBMC Dharma(10.05)中采用的扩展功能管理系统。XBMC要推出的这个新插件系统使得第三方开发的增强功能可以被用户直接通过XBMC内置用户界面获取。这个插件系统基于插件功能库
c-pluff每个扩展功能模块保存在独立的目录中,并用名这addon.xml的XML文件来描述。还有一些相关文件,名为icon.png、 changelog.txt和fanart.jpg。这几个文件是可选择使用的,不过建议至少要有icon.png。这些文件要存在扩展功能模块的“根” 目录中。其他文件应该包含在resources/子目录中,如语言文件和设置描述文件。
每个扩展功能有2个相关的图片文件:一个图标文件(icon.png)和一个可选的同人画文件(fanart.jpg)。如果你想要为你的扩展功能制作高质量的图标或同人画,可以随时向XBMC论坛的社区提出请求--那里有许多天才的设计师们乐于为你的扩展功能设计美图。
我们建议icon.png做成正方形的PNG文件,规则如下:
· 它应该以图形方式向用户表述这个扩展功能的作用;
· 它应该是256x256的PNG文件;
· 它不应该有阴影、光泽或类似特效--XBMC皮肤系统会处理这些;
· 建议采用在平面背景(非透明)下的logo图标形式(例如采用扩展功能在线获取媒体的服务商的logo图标)。
我们建议fanart.png做成16:9的JPG文件,规则如下:
· 它用作背景,所以应该简洁没有文字内容;
· 建议为1280x720的JPG文件,通常分辨率不要高于1920x1080;
· 建议在合理范围内尽可能让文件字节数小些,要知道有成千上万人要下载它。
addon.xml是一个很重要的文件,它告诉XBMC这个扩展功能模块是干吗的(比如是哪一类扩展功能)以及要依赖哪些扩展功能、正常运行需要的XBMC最低版本。addon.xml文件范例如下:
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="skin.confluence"
version="1.1.0"
name="Confluence"
provider-name="Jezz_X, Team XBMC">
<requires>
<import addon="xbmc.gui" version="2.11"/>
</requires>
<extension
point="xbmc.gui.skin"
defaultresolution="720p"
defaultresolutionwide="720p"
defaultthemename="textures.xbt"
effectslowdown="0.75"
debugging="false"/>
<extension point="xbmc.addon.metadata">
<summary>Confluence skin by Jezz_X. (XBMC's default skin)</summary>
<summary lang="nl">Confluence skin door Jezz_X</summary>
<summary lang="zh">Jezz_X开发的Confluence皮肤</summary>
<description>Confluence is the default skin for XBMC 9.11 and above. It is a combination of concepts from many popular skins, and attempts to embrace and integrate their good ideas into a skin that should be easy for first time XBMC users to understand and use.</description>
<description lang="nl">Confluence is de standaard skin voor XBMC 9.11 en hoger. Het combineert de concepten van andere populaire skins, waarbij het tracht hun goede ideëen te integreren in een skin die gemakkelijk in gebruik is.</description>
<description lang="zh">在XBMC 9.11之后的版本中Confluence是默认皮肤。它集合了许多流行皮肤的创意,力求把这些优点融合到一个皮肤中,使得首次使用XBMC的用户能更容 易上手。</description>
<disclaimer>Confluence is the default skin for XBMC, removing it may cause issues</disclaimer>
<disclaimer lang="nl">Confluence is de standaard XMBC skin, het verwijderen van Confluence kan leiden tot problemen.</disclaimer>
<disclaimer lang="zh">Confluence是XMBC的默认皮肤,删除它可能导致故障。</disclaimer>
<platform>all</platform>
</extension>
</addon>
有几个事项需要注意:
· <addon>元素是必须的,它用于定义扩展功能包的全部信息;
· <addon>元素中包括一个<requires>子元素,用于列示此扩展功能运行所依赖的项目;
· 然后是一个或多个<extension>子元素,每个描述一项XBMC的扩展功能;
· 最后,有一个特殊的<extension>子元素用于向用户说明这个扩展功能模块。
addon元素有4个属性:id、version、name和provider-name。
· id属性是此扩展功能的唯一性标识。它必须是唯一性的,只能使用小写字母和半角点号、下划线、连字符以及数字。这个标识符同时用于保存此扩展功能模块的目录名。为便于查找,建议使用类似<扩展功能类型>.<唯一性名称>的形式。
· version属性由XBMC用来判断是否有可用更新,你可以采用类似1.0.3的形式。
· name属性是扩展功能在用户界面中显示的名称,应该采用英文,XBMC不会对此进行翻译。
· provider-name属性是开发者信息,可以是开发团队或个人。
requires元素包含一个或多个<import>子元素,用于说明需要依赖的其它扩展功能以及要求的版本。这些扩展功能可能是XBMC内 置的,也可能是第三方开发的外部扩展功能。只有符合版本要求的所有依赖扩展功能都已安装,当前扩展功能才可以运行。当你通过XBMC的扩展功能管理器从在 线扩展功能库安装扩展功能时,XBMC会尝试自动安装所依赖的功能模块。
extension元素描述此扩展功能的一些技术参数。至少要有一个point属性指出实现XBMC的哪类功能。例如,上面给出的Confluence皮 肤的addon.xml文件扩展了XBMC的"xbmc.gui.skin"功能。其他可用extension points见后面介绍。
所有的扩展功能都必须有这个特殊的extension point,用于向扩展功能管理器的用户说明此扩展功能。可以包含4个元素,但只有第一个是强制需要的:
· 一个或多个summary元素提供扩展功能的摘要。应该是单个句子。可以被翻译成多国语言,并用类似lang="ch"属性标明,没有标明lang属性的作为英语处理。
· 一个或多个description元素提供此扩展功能更详细的介绍,同样可以翻译。
· 一个或多个disclaimer元素提供用户需要注意的事项。这个声明项不是必须的,可用于说明一些必要的设置,或只能用于特定语种之类。
· 一个platform标签指明此扩展功能用于哪些平台(操作系统、硬件)。一些扩展功能可用于所有平台,则可设置为"all",你还可以用"linux", "osx", "windx" 和 "wingl"。如果没有指明可用平台,默认为可用于所有平台。
XBMC支持的各种extension points如下:
· xbmc.gui.skin
· xbmc.addon.repository
· xbmc.metadata.scraper.albums
· xbmc.metadata.scraper.artists
· xbmc.metadata.scraper.movies
· xbmc.metadata.scraper.musicvideos
· xbmc.metadata.scraper.tvshows
· xbmc.metadata.scraper.library
· xbmc.ui.screensaver
· xbmc.player.musicviz
· xbmc.python.pluginsource
· xbmc.python.script
· xbmc.python.weather
· xbmc.python.subtitles
· xbmc.python.lyrics
· xbmc.python.library