XBMC插件addon.xml编写说明
XBMC插件addon.xml编写说明翻译自http://wiki.xbmc.org/index.php?title=Addon.xml,不完全翻译。 ==================================== 1.引言XBMC中每一个皮肤或脚本(或插件)都要包含一个addon.xml文件,它会设置扩展的总体信息(开发人员,版本信息和依赖库)。下面我们会讲解如何书写一个这样的文件,另外会给出皮肤和脚本(插件)版本的不同。 2.总体结构Addon.xml有以下需要注意的: l必须出现<addon>标签,它是整个文件的顶层标签。 l<addon>标签中包含<requires>标签,它列出这个扩展运行所需的组件。 l然后有一个或多个<extension>标签,每一个标签都会说明扩充的功能。 l最后,有一个特别的<extension>标签为用户描述这个扩展的整体信息。 必须包含的内容<addon>标签 有四个属性:id、version、name和provider-name。
示例:<addonid="script.hello.world"name="HelloWorld"version="0.0.1"provider-name="Dev1,Dev2">
<requires>标签 包含一个或多个<import>标签,它表示这个扩展所需要的其他扩展的名称和版本号。这些扩展可以是XBMC本身的一部分,也可以是第三方扩展。XBMC只会运行那些依赖正确的扩展,即版本号正确。当用户从仓库中安装你的扩展时,XBMC会试图解析依赖,安装依赖的扩展。必须提供依赖正确的最低版本号。 当设置optional属性为true时将使对应的扩展为可选,这将会在真正需要它的时候再安装。如果依赖丢失,依赖的扩展仍然会被安装。 如果你的扩展依赖于第三方模块,必须由用户先安装后者再安装前者。如果在已知仓库中存在,则XBMC会自动安装,否则需要你在代码中自行获取,因为XBMC不知道在<requires>中做什么。 示例: <requires> <importaddon="xbmc.python"version="2.1.0"/> <importaddon="script.module.elementtree"version="1.2.7"/> <importaddon="script.module.simplejson"version="2.0.10"optional="true"/> </requires> 下面的扩展只会在OPENELEC上安装: </requires> <importaddon="os.openelec.tv"version="2.0"optional="false"/> </requires> 可选的标签: <importaddon="script.module.simplejson"version="2.0.10"optional="true"/> 依赖版本 每个版本的XBMC主程序需要的最低扩展版本不同,如下:
<extension>标签 该标签描述这个扩展的技术信息。所有的标签内容如下所示:
如果扩展不属于上述类别,则不能被用户直接安装,而是由需要它们的其他扩展来安装。 Xbmc.python.pluginsource标签 最常用的extension。<extensionpoint="xbmc.python.pluginsource">标签有一个library属性,它是插件启动时的脚本名称,必须存在于扩展主目录下。该extension还有一个子标签<provides>,它是一个由空格分隔的列表,包括图像、视频、音频和可执行文件。它将决定该扩展出现在哪个类别中。 image=>Pictures video=>Video audio=>Music executable=>Programs <blank>=>Novisiblepresence 例如: <extensionpoint="xbmc.python.pluginsource"library="gpodderxbmc.py"> <provides>audiovideo</provides> </extension> Xbmc.addon.metadata标签 Thisspecialextensionpointmustbeprovidedbyalladd-ons,andisthewaythatyouradd-onisdescribedtousersoftheXBMCadd-onmanager. 每个扩展都要包含这个标签,它为XBMC扩展管理器提供信息。 需要的信息 包含一系列必需的标签,至少应该有英文表述: summary属性可以有一个或多个,用来说明该扩展的用途。必须是单句。可以使用lang=”ch”来翻译成其他文字。如: <summarylang="en">HelloWorldscriptprovidessomebasicexamplesonhowtocreateyourfirstscript.</summary> 一个或多个description标签提供扩展更详细的细处。也可以翻译成其他语言。如: <descriptionlang="en">HelloWorldscriptprovidessomebasicexamplesonhowtocreateyourfirstscript andhopefullywillincreasethenumberofXBMCuserstostartcreatingtheirownaddons.</description> 一个或多个disclaimer标签用来向用户说明一些额外信息,可以没有。如: <disclaimerlang="en">Feelfreetousethisscript.Forinformationvisitthewiki.</disclaimer> Platform标签用来表示在哪些平台(包括操作系统和硬件平台)上运行。默认为all即全平台运行。可以使用的选项有: all linux osx osx64 osx32 ios windx wingl android 如: <platform>all</platform> Language标签。说明在内容中的语言,可以使用在插件、脚本或削刮器中。可以为空。 Listoflanguagecodes(ISO-639:1988) <language>endefr</language> 或: <language></language> Broken标签。表示在XBMC插件仓库中为不完整。如: <broken>deprecated</broken> 附加信息 License标签:使用的许可证。 <license>GNUGENERALPUBLICLICENSE.Version2,June1991</license> Forum标签,表明相关的论坛。 <forum>putURLhere</forum> Website标签,表明相关网站。 <website>putURLhere</website> Source标签:源代码地址。 <source>putURLhere</source> E-mail标签:作者的电子邮箱地址。可以使用以下两种格式: <email>foo@bar.com</email> <email>fooatbardotcom</email> 皮肤插件中的特别项目概览
2.2.2Howwindowxmlfilesarefound XBMCcanruninmanydifferingresolutions,andaskinshouldtryandcatertoalltheseresolutions.Theeasiestwayistodevelopforonespecificresolutionandmakesurethatallcontrolscontain<width>and<height>tags.Thatway,XBMCcanscalethecontrolstothenewscreenresolution. However,youmaychoosetodevelopalternativewindowxmlfilesfordifferingresolutions(suchasforHDTVresolutions,orforwidescreenversus4x3resolutions). TheorderthatXBMClooksforit'sskinfilesareasfollows: Itfirstlooksinthecurrentscreenmodefolder(oneof1080i,NTSC16x9,NTSC,PAL16x9orPAL) Ifthecurrentscreenmodeis1080i,itthenlooksinthe720pfolder. Ifthecurrentscreenmodeisawidescreenmode(1080i,PAL16x9)thenitlooksinthe<defaultresolutionwide>folder. Finally,itlooksinthe<defaultresolution>folder. Thisallowsyoutojustputanywindowfilesthatdonotrequirespecialtreatmentfor16x9resolutionsetc.inthe<defaultresolution>folder,preventingneedlessrepetition. script/plugin扩展的特别项目未加入 3.addon.xml示例皮肤扩展的addon.xml <?xmlversion="1.0"encoding="UTF-8"?> <addon id="skin.confluence" version="2.1.3" name="Confluence" provider-name="Jezz_X|TeamXBMC"> <requires> <importaddon="xbmc.gui"version="4.0.0"/> </requires> <extension point="xbmc.gui.skin" defaultthemename="textures.xbt" debugging="false" effectslowdown="0.75"> <reswidth="1280"height="720"aspect="16:9"default="true"folder="720p"/> </extension> <extensionpoint="xbmc.addon.metadata"> <summarylang="en">ConfluenceskinbyJezz_X.(XBMC'sdefaultskin)</summary> <descriptionlang="en">ConfluenceisthedefaultskinforXBMC9.11andabove.Itisacombinationofconceptsfrommanypopularskins,andattemptstoembraceandintegratetheirgoodideasintoaskinthatshouldbeeasyforfirsttimeXBMCuserstounderstandanduse.</description> <disclaimerlang="en">ConfluenceisthedefaultskinforXBMC,removingitmaycauseissues</disclaimer> <platform>all</platform> <license>GNUGENERALPUBLICLICENSE.Version2,June1991</license> <forum></forum> <website></website> <email></email> <source></source> </extension> </addon> Onethingtonoteisthatalltagnamesarelowercase.XMLtagnamesarecasesensitive! scripts/plugins扩展的addon.xml <?xmlversion="1.0"encoding="UTF-8"standalone="yes"?> 4.XBMC源代码addon.xml遵循XMLSchemaDefinition标准。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |