xbmc播放器文档.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

您可能关注的文档

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档