- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
xbmc播放器文档
xbmc播放器
一、播放器功能原理简介
1、调用流程图
Xbmc本身支持视频的播放,但同时也兼容其他外挂播放器,使得能够对任意视频文件的兼容。Xbmc播放视频总流程如下:
2、播放规则的设置
在启动xbmc时,会通过LoadPlayerCoreFactorySettings函数来加载playercorefactory.xml文件。该文件是对播放器调用的规则进行了声明。
文件名称:playercorefactory.xml
目录:X:\Program Files\XBMC\system\
作用:该文件记录了xbmc何时调用dvdplayer,何时调用patplayer或其他外挂播放器。规则内容可以 根据视频流、文件格式、协议类型等进行调用匹配,详见“xmbc为挂播放器设置详解”。
参考文档:
3、创建播放器实例
在创建播放器实例时,根据规则来创建不同的播放器实例。
DVDplayer类和CExternalPlayer类是两个不同的播放器类,他们同时继承于IPlayer基类,根据规则创建不同的播放器实例。工厂模式的简化运用如下:
IPlayer* m_player NULL;
m_player Factory::getplayer type ;
m_player.play ;
Sleep 5000 ;
m_player.quit ;
4、播放流程图
默认播放器流程图
1、支持本地文件。如C:\111.mp4
2、支持网络节目。如土豆、优酷等都是使用默认播放器dvdplayer进行播放,还支持其他协议的网络播放,如:rtsp、mms等
下面是xbmc默认播放器的内部流程图
外挂播放流程图
支持安装版的播放器。下面是外挂播放器流程图:
5、默认播放器的OSD和VCR操作
Osd图标是一个Dialog窗口类,里面放置了各种按钮。效果如下:
五秒钟自动隐藏该窗口,鼠标移动会呼出窗口。
支持的vcr操作有:
播放、暂停、快进、快退、选时、音量、搜索(定长的跳进跳退),上一段下一段不能用
以暂停操作为例,下面是内部流程图
在点击OSD窗口的暂停按钮时会调用CGUIToggleButtonControl::OnClick 函数,该函数内部通过界面管理器的CGUIWindowManager::SendMessage函数向应用框架CApplication发送“GUI_MSG_EXECUTE”消息,应用框架调用CApplication::ExecuteAction函数,参数类型是事件类CGUIActionDescriptor,分为LANG_XBMC和LANG_PYTHON两种类型的事件消息,其中暂停消息属于LANG_XBMC类型,此时调用CApplication::ExecuteXBMCAction执行。然后内部调用CBuiltins::Execute 函数,这是一个嵌入部件的执行函数,如一些常用按钮:关机、重启、重置、运行脚本等。例如关机传入字符串“shutdown”;播放传入字符串“PlayerControl Play ”,最终通过一个全局变量指针调用播放器暂停Pause()。
音频文件播放
整体流程和视频播放都是一样的,音频文件没有视频输出,所以画面上会显示动态随机画面。支持外挂播放器播放
二、播放器源码目录结构
在xbmc项目下有cores文件夹,这是播放器内核的目录。
播放器分为两个部分,一是dvdplayer,另外一个是外挂播放器。其中dvdplayer是一套跨平台的播放器源码,它并不是以微软的directshow作为架构。externalPlayer是外挂播放器,通过调用外部exe进程播放器进行视频播放,但这里xbmc不能对外挂播放器进行控制,如播放、暂停、退出等操作,这些vcr操作,可以通过设置外挂播放器的快捷键来实现,即设置外挂播放器的vcr操作与xbmc的操作一样,即可达到该效果,xmbc对外挂播放器进行监控,发现播放器退出时,会释放资源并返回到xbmc原界面。
播放器内核整体目录结构如下:
下为具体各个文件夹的内容:
音频输出
AudioRenders
DvdPlayer音频输出模块,里面是个工厂模型,支持window和linux等各 个平台的音频输出。如下图所示:
2、dll加载
DllLoader
在调用解码库时可以加载ffmpeg的相关dll,通过该模块加载调用dll。
3、dvdplayer
Dvdplayer
Dvdplayer是播放器的核心部分,包括demux、decoder和字幕模块等。Codecs是解码库,demuxer是分离库,inputstreams是数据读取模块,Subtitles是字幕管理模块。
4、外挂播放器
externalPlayer
外挂播放器的源码控制部分。内容如下:
5
您可能关注的文档
- 刑法对正当防卫制度中的不法侵害的理解.doc
- WTO争端解决机制习题.doc
- 刑法诉讼企业租赁经营不能解除劳动者的劳动合同.doc
- 刑法诉讼低速汽车生产企业及产品准入管理规则().doc
- 刑法诉讼关于无权处分行为的效力.doc
- 刑法诉讼北京市内销商品房预售契约文本.doc
- 刑法诉讼国内货物运输险投保单.doc
- 刑法诉讼国际货物买卖合同.doc
- 刑法诉讼契约书(货物赊欠买卖).doc
- WTS-600MeetingCenter媒体传送客户端介绍.docx
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
文档评论(0)