深度影音插件编写规则和注意事项
Tofloor
poster avatar
admin
deepin
2012-12-23 14:24
Author
下载地址: https://github.com/hailongqiu/movie_down 为爱搜影的播放器后端.重构深度影音代码,全部由插件编写起来,不懂如何编写,看我的编写的插件.
media-player.tar.gz 就是安装文件.
** 深度影音插件编写注意事项:
****编写的插件统一放在下图的显示的路径中.
****编写的插件必须统一格式.详见代码1-1例子.
deepin-media-player_005.png
ldmp_plugins_006.png


[]代码1-1例子:
  1. #################################################
  2. plugin-in Format | 插件编写规范:
  3. class plugin_class_name(object):
  4.           def __init__(self):
  5.                     pass
  6.                   
  7.           def init_values(self, this, gui, ldmp):                  
  8.                     pass
  9.                                     
  10.           def auto(self): # 是否自动运行插件.
  11.                     return True
  12.                   
  13.           def start(self): # 启用插件.
  14.                     print "start plugin..."
  15.                   
  16.       def stop(self): # 卸载插件.
  17.                     print "stop plugin..."
  18.                   
  19.       def name(self): # 唯一的名字,你也可以加密过.
  20.                     return "deepin_media_plugin_class_name_hailongqiu"
  21.                   
  22.           def insert(self): # 优先级
  23.                     return None or int number
  24.                   
  25.       def icon(self): # list 列表 或者 None.
  26.               return [gtk.gdk.pixbuf..., ..., ...]
  27.                   
  28.           def version(self): # string or number 字符串或者数字.
  29.                     return 0.12
  30.                   
  31.           def author(self): # 开发者
  32.                     return "hailongqiu"
  33.           
  34.           
  35. def return_plugin():
  36.     return plugin_class_name
  37.           
  38. ##############################
  39. []ldmp API:       
  40. ****ldmp.player.属性
  41. ****ldmp.pause()
  42. ... ...
  43. []gui API:
  44. ****gui.screen
  45. ****gui.screen_frame
  46. ****gui.app
  47. ... ...
  48. []this API:
  49. ****this.next()
  50. ****this.prev()
  51. ****.this.plugin_manage   # 如果想搞掉别人的插件. this..plugin_manage.plugins_dict["插件唯一名字"].stop(),说88. :lol:
  52. *****this.play_list #播放列表
  53. *****this.argv_path_list # 传入的参数.
  54. [] call 公共函数接口.
  55. **** ini.py utils.py
  56. ################################
Copy the Code
参数一 主代码核心控制.
参数二 主要用于控制界面元素的.
参数三主要用于播放器后端控制.

小技巧:
from ini import Config 可以调用INI配置文件,就可以操作INI.
后续将整理详细的API给大家.
现在的深度影音界面完全是由插件塔建起来的,除了 主窗体和显示屏幕还有一些东西,其它的都是插件.
界面布局大家可以随意调整,深度影音自带的插件都是以ZIP的方式加载的,为了节省空间.
自带插件布局情况.
Deepin Media Player_007.png
删除插件后.
Deepin Media Player_008.png
现在的插件机制是用户完全可以掌控的, 大到后端,再到插件(包括别人的插件,自带插件),小到界面,都是可控制的.
播放后端API.

另类辅助插件API.
import utils
show_open_dir_dialog_window 打开文件夹对话框,返回一个绝对文件夹路径.
show_open_file_dialog_window 开发文件对话框,返回一个绝对文件路径.
get_file_icon 得到一个文件图标.
get_file_type 获取一个文件类型.  aduio/....   applicatio/l....
is_file_audio 判断是否为音频文件.
length_to_time length 转换成时间. 00:00:00
get_home_path 得到用户的/home/long  我的账户是long.
get_paly_file_name 获取文件名.
get_paly_file_type  获取播放后缀名.
get_file_size 获取文件大小.
size_to_format 获取文件的 byte, kb, mb, gb, tb ,pb,单位.
debug_msg 调试输出.  from constant import DEBUG , 将DEBUG设置为 真,可以看见所有的调试信息.
##########################################
## 线程扫描目录.  
## scan_dir = ScanDir('/home')
## scan_dir.connect("scan-file-event",self.scan..  ..
## def scan_file_event(scan_dir, file_name):...        
ScanDir() 类
** pause 暂停线程
** start 开启线程
** enter 线程锁.
**leave
Reply Favorite View the author
All Replies
cxbii
deepin
2012-12-23 20:08
#1
原来深度影音也要支持插件机制~
Reply View the author
admin
deepin
2012-12-23 23:46
#2
原来深度影音也要支持插件机制~
:  :  :  8-)  8-)  8-)  8-)  :  :  :  :  :  :  :  :lol:
哦,最新加入了,代码进行了重构,这个版本应该看不到.
我重构了后端了,非常的稳定.
我现在都是在编写插件了,不写深度影音代码,就写写插件,哈哈哈.
以后升级也方便,插件一出,谁与争锋.
Reply View the author
cxbii
deepin
2012-12-24 00:12
#3
[quote]原来深度影音也要支持插件机制~
:  :  :  8-)  8-)  8-)  8-)  :  :  :  :  :  :  :  :lol:
哦,最新加入了,代码进行了重构,这个版本应该看不到.
我重构了后端了,非常的稳定.
我现在都是在编写插件了,不写深度影音代码,就写写插件,哈哈哈.
以后升级也方便,插件一出,谁与争锋.[/quote]
;) 等更新
Reply View the author
ldmpscript
deepin
2012-12-24 02:58
#4
就连菜单也是插件..
Reply View the author
summving
deepin
2012-12-25 21:27
#5
到时候就会有qq影音这么强大的工具箱了,什么转码,gif,截视频呀,到时就成了linux最厉害的播放器了 :
Reply View the author
ldmpscript
deepin
2012-12-26 21:24
#6
到时候就会有qq影音这么强大的工具箱了,什么转码,gif,截视频呀,到时就成了linux最厉害的播放器了 :
对啊!软件一个人是写不完,应该由大家一起来写,插件出来,提供一套标准和API,我们就可以随便写了! :
Reply View the author