转载自 http://bbs.htpc1.com/thread-198731-1-1.html 稍做改动和整理
xbmc视频插件采用python语言编程,插件启动后会下载网页,截取其中的一些内容(文字或网址),交给xbmc或显示视频的目录,或播放视频。
学习本教程必须具备python、html的基础知识。
python是一种简单易学的计算机语言,网上的《简明Python教程》看一两天就能入门(如果有其它语言编程基础的话),还有个《HTML教程》,也是很容易学习的。
【一、插件的结构】
每个插件保存在各自的文件夹里,打开xbmc插件的安装目录addons(C:\Documents and Settings\johnny.he\Application Data\XBMC\addons),可以看到很多安装好的插件的文件夹。
一个典型的视频插件的文件夹里通常要有这三个文件:
addon.xml:说明文件,用来告诉xbmc该插件所提供的内容以及安装要求;
icon.png:图标文件,256x256像素,xbmc插件清单旁边显示的就是这个图标;
*.py:python主程序文件,名字随便起,addon.xml中有一项会用到这个文件名。
如果插件的子程序和用到的数据较多,可以在下面再开子文件夹来保存。
重点看addon.xml的结构:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.hello"
name="helloworld演示"
version="0.0.1"
provider-name="Johnny">
<extension point="xbmc.python.pluginsource" library="helloworld.py">
<provides>video</provides>
</extension>
<extension point="xbmc.addon.metadata">
<platform>all</platform>
<summary>hello world plugin</summary>
<summary lang="zh">helloworld演示插件</summary>
<description>hello world plugin, python script</description>
<description lang="zh">helloworld演示插件,python脚本</description>
<disclaimer>For demonstration only</disclaimer>
</extension>
</addon>
首先第一行申明这是一个xml文件,且是utf-8编码的,接着是<addon>元素,在<addon>和</addon>之间,有一个或多个<extension>元素,每个<extension>告诉xbmc这个插件扩展了哪一部分的功能,只有最后一个<extension>比较特别,只是用来向用户做个说明。
<addon>元素有4个属性:id, version, name, provider-name
id属性:插件id,必须是唯一的,小写,插件zip文件解压后,以id命名文件夹,所以不能重名,建议以plugin.<类别>.<唯一名>的形式命名,类别可以是video, audio, script等;
version属性:插件版本号,格式为x.x.x,xbmc用来确定是否应升级插件;
name属性:插件名称;
provider-name属性:插件作者。
<extension>元素通过point属性告诉xbmc该插件扩展的类型,有多种类型,用python写的视频插件属xbmc.python.pluginsource类型,同时还应加上一个library属性告诉xbmc启动插件时运行哪个python程序。<provides>video</provides>告诉xbmc这是对视频功能的扩展。最后一个xbmc.addon.metadata类型的<extension>元素用来说明插件的运行环境、摘要、详情、申明等,英文的必须有,中文的可有可无。
插件做好后,把所有文件压缩进zip文件包中发行,xbmc在安装插件时会检查其中的addon.xml,确认格式无误后,才把它解压到addons目录下,成为一个可用的插件。