深入DIY,打造超苗条绿色REAL播放器

本文介绍了一种利用Windows Media Player 6.4和RealPlayer的关键组件创建轻量级RMVB播放器的方法,该播放器占用资源极少且支持最新编码格式。

转自:   http://hi.baidu.com/cankyo/item/aeb8ed10740996423b176e6d

深入DIY,打造超苗条绿色REAL播放器



    自从Real视频编码(RM和RMVB)出现后,就立刻以其优秀的播放效果和便于传递的特性风行全世界。可是,它的官方播放器——RealPlayer/RealOne Player却一直在走当年Winamp发展的老路:快速、小巧和占用资源少的特点正在失去,取而代之的则是软件变得臃肿、花哨,而且非常占用资源。特别是继推出RV9(即RMVB)编码格式以后,RealNetworks又推出了RV10+RA10编码格式,并且借着升级编码格式的风头,强行推出新的播放器。新的播放器(RealPlayer 10)的界面的确很漂亮,但是加载速度非常慢,还未播放就要占用将近40MB的内存,新增加的网上购买CD等功能对国内用户而言,完全就是花瓶……RealPlayer与我们“更小”、“更省”的软件使用思路背道而驰。对此,当然要发挥DIYer的精神,彻底摸透Real流媒体的播放原理,然后打造出使用系统自带的Windows Media Player 6.4(以下简称WMP 6.4)就能播放Real视频编码格式的播放器(见图1)!而且,千万不要认为我们做的这个播放器就是网上盛传的MyMPC,实际上它与MyMPC有本质的区别,而且占用资源比MyMPC更少,运行更流畅!好,下面就从RealPlayer的播放原理开刀吧!

    一、探寻RealPlayer的播放原理毫无疑问的是,如果仅仅把RealPlayer安装目录中的文件拷贝出来,然后逐个删除以达到“减肥”的效果,那绝对是不可取的。一来直接拷贝出来的文件在新的系统中根本不能用,二来就算手动注册其中的DLL、OCX等文件,也无法让播放器缩小到1MB(总不能把主程序也删了吧)。因此就要转换思路,首先必须搞清RealPlayer是如何工作的,这又分为两个步骤:首先是把RealPlayer的关键文件全部找出来,然后再弄清这些关键文件是如何播放媒体文件的,从而寻找与WMP 6.4结合的切入点。

    1.搜索RealPlayer的关键文件首先在一个“干净”的系统(Windows XP)中安装RealPlayer 10,看看它到底向系统中安装了哪些文件。通过比较后发现RealPlayer在系统System文件夹中访问或改写了10个文件,分别为:KERNEL32.dll、USER32.dll、GDI32.dll、comdlg32.dll、ADVAPI32.dll、SHELL32.dll、ole32.dll、pnCrt.dll、pnui3260.dll和VERSION.dll。这其中有一些是显而易见的Windows核心文件,那么除此以外,哪些才是RealPlayer的重要文件呢?用排除法去掉KERNEL32.dll、USER32.dll、GDI32.dll等系统进程后,很容易发现pnCrt.dll是最可疑的。根据RealNetworks官方网站对这个文件的注释,它实际上是“Real Networks C/C++ Runtime Library”(即Real运行库),主要用来控制屏幕显示,并且会调用pnui3260.dll来控制网络流媒体。而且,这些DLL插件基本处于RealPlayer安装目录中的“Plugins”或“Common”目录下,进一步证明了我的猜想。应用思路★一个软件应用高手至少应该知道必要系统进程的相关文件都有哪些,如系统内核KERNEL32.dll、用户资源USER32.dll、界面资源GDI32.dll等。这部分内容可以通过阅读本刊的“系统应用”栏目来补充,比如2004年第5期的《为有源头活水来——让系统资源不再短缺》就详尽地说明了USER32.dll与GDI32.dll的作用。★很多软件的安装目录中都具备一个“Plugins”文件夹,这里面的内容绝大多数都与软件功能相关。有的是重要功能,有的是次要功能,但可以肯定的是,在不影响程序稳定的前提下,增加插件可以丰富软件的功能,减少插件则可以提高软件的运行速度。

    2.揭开RealPlayer媒体播放之谜接下来,我们要看看RealPlayer是怎么播放媒体文件,也就是如何解码的。找到RealPlayer的安装目录,会发现里面有一个“RealCodecs”目录,里面有一堆DLL文件如14_43260.dll、28_83260.dll等。通过排除法就可以确定就是这些文件来解码不同的Real压缩格式,比如一个用来解码RV10压缩格式,一个则用来解码RA10。除了解码目录外,还有形如“Plugins”之类的目录,很容易就可以证明这里面的动态链接库是用来支持网络Real流媒体的,对于这些文件,我们可以放心大胆地舍弃,因为我们的目标是使用WMP 6.4来打造最小的播放器,而WMP 6.4是不支持那些花哨插件的。到这里我们就可以基本上肯定Real播放器的播放流程了,正如下面的示意图所示:pnCrt.dll调用自己的接口来通知Real播放器,然后调用解码器和其他插件进行解码和合成,最后将最终结果发送到屏幕上(见图2)。


二、RealPlayer与Media Player整合计划在搞清楚了Real播放原理以后,我们的目标就放在WMP 6.4上了。谁叫它是最小、占用资源最少、又最稳定的播放器呢,正好符合我们DIYer“吝啬”的特征。在Windows 98/2000中,系统自带的播放器就是WMP 6.4;如果你用的是其他操作系统,又或者安装了高版本的Windows Media Player,WMP 6.4就会被更名为mplayer2.exe,放在\Program Files \Windows Media Player\目录下。首先,将Real的解码文件(RealCodecs目录)分离出来,放到自己规定的目录下,并且更改注册表中的指向,将其指到自己的目录下:[HKEY_CLASSES_ROOT\SOFTWARE\RealNetworks\Preferences\DT_Codecs]@="C:\\自定义目录\\RealCodecs"[HKEY_CLASSES_ROOT\SOFTWARE\RealNetworks\Preferences\DT_Common]@="C:\\自定义目录\\RealCodecs"[HKEY_CLASSES_ROOT\SOFTWARE\RealNetworks\Preferences\DT_Objbrokr]@=" C:\\自定义目录\\RealCodecs"其次,我们需要一个组件,能够接管pnCrt.dll的命令,同时又能够为MMP 6.4所调用。有这样的组件吗?当然有!在Media Player Classic(MPC)中,有一个仅125KB的控件RealMediaSplitter.ax。注册该控件后,在WMP 6.4调用自带的mediaplayer.ax不能解码Real文件的情况下,WMP 6.4就能够自动寻找到RealMediaSplitter.ax,由它来接管pnCrt.dll发出的请求了。所要说明的是,这个组件最好和pncrt.dll一起放在系统System32下才能起作用,因为这样注册和卸载起来才显得更简单,我们不妨把它写成批处理文件来执行。安装.batcopy RealMediaSplitter.ax %SystemRoot%\system32regsvr32 %SystemRoot%\system32\RealMediaSplitter.ax卸载.batregsvr32 RealMediaSplitter.ax /udel %SystemRoot%\system32\RealMediaSplitter.ax现在应该可以用Windows Media Player 6.4放RMVB文件了。为了更方便起见,我们将RMVB和WMP 6.4关联起来(在“文件夹选项”的“文件类型”下更改),这样系统默认就使用WMP 6.4来播放RMVB文件。怎么样,是不是很有成就感呢?我们的播放器非常小巧,包括解码文件在内,打包后才1MB大;又绿色,我们可以随时加载、随时卸载,也没有在注册表内写什么垃圾;占用资源又少,播放时才占用不到15MB内存,比RealPlayer 10未播放时占用的还少(见图3);同时还支持最新的RV10+RA10编码格式!你还在犹豫什么,赶快行动吧!

内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值