注意:本文译自xbmc官方论坛,所介绍的方法未经测试,欢迎有MCE遥控器的朋友学习交流
英文原文:http://xbmc.org/forum/showthread.php?t=62966
本文分析将MCE遥控器用于XBMC的有关问题,且不涉及Linux或OSX系统,仅讨论在Windows平台运行XBMC的情况。专文分析这一问题是因为并非所有MCE遥控器都相同,我们可以把它们分成三类:
1. 原装微软MCE遥控器(以及真正的兼容产品)
2. 发送MCE快捷键的廉价仿制品
3. 发送多媒体键盘按键的廉价仿制品
让人困扰的是很多遥控器是混合型的,如原装微软MCE遥控器也会象廉价仿制品一样发送一些MCE键盘快捷键,而廉价仿制品通常会混合发送快捷键和多媒体键盘按键。下面我们将分析这三类遥控器的区别,首先你要明白,这些遥控器都是设计用于遥控WindowsMedia Center的,并且有三种方式来控制微软媒体中心。
通过红外设备驱动程序
媒体中心连接到Windows红外设备驱动程序(irbus.sys和hidir.sys)并直接处理遥控器发送的红外指令。这是原装MCE遥控器的主要工作方式。
通过键盘快捷键
所有媒体中心命令都可以对应于标准键盘的快捷键。例如“播放”对应control-shift-P,而“停止”对应control-shift-S。当你按下遥控器时,它会发送这样的组合按键。
通过多媒体键盘按键
你可能也用过有额外的多媒体键的非标准键盘,微软MCE键盘就是很好的例子。当你按下遥控器时,它也可以模拟多媒体键盘按键。
下一部分我们将介绍不同类型的遥控器是如何工作的,以及怎样使它能用于XBMC。
廉价仿制品遥控器
我们先介绍廉价仿制型遥控器是因为它们比原装微软遥控器简单。这也是我们前面所说的第二、三类。原装微软遥控器则是非常复杂和昂贵的遥控器,它才出现没多久就被发现可以做出廉价和简单的遥控器来实现几乎相同的功能。所以我们称之为“廉价仿制遥控器”。
廉价仿制遥控器被Windows识别为键盘(或为鼠标)而非红外设备。当你接上遥控器并打开设备管理器,就会发现在“人机交互设备(HumanInterface Devices)”里出现新的设备。拔掉接收器它就消失了。
你会发现遥控器的很多按键能对所有Windows程序起作用。例如上、下、左、右按键通常发送和键盘方向键相同的键码,你可以用遥控器上的这些键控制在Excel电子表格中移动。
那么播放键又如何呢?廉价仿制遥控器会发送一个按键,可能是两种不同的按键。对于第二类遥控器,会发送MCE快捷键control-shift-P,而第三类遥控器则会发送多媒体播放键VK_MEDIA_PLAY_PAUSE.
XBMC无法识别象control-shift-P这样的MCE快捷键,所以第二类遥控器在XBMC中是用了不的(在不采取其他手段的情况下)。幸运的是XBMC可以识别多媒体键(或者至少能识别其中一些),这样第三类遥控器就可以用于XBMC。但问题是你买遥控器时不可能知道那个廉价仿制品发送哪类键码,能否被XBMC支持。有些遥控器产品多数铵键发送多媒体键,但快进和快退却发送MCE快捷键,也就是混合了二、三类情况,造成有的键有效,有的却无效。
了解到这些,你可能想也许最好使用原装微软遥控器了,但这也有麻烦。
原装微软遥控器
微软好象已经不生产原装遥控器了,至少现在很难买到。幸好你还可以在eBay买到它。
Windows7、Vista和XP媒体中心版内置微软遥控器驱动程序,因而能自动识别它。其它版本的Windows象标准的XP就得另外下载安装驱动程序。你得到网上搜索,因为微软官方并不提供这个驱动下载。好在WindowsXP就要退出历史舞台,那就不再是一个问题。不过如果你正使用非媒体中心版的XP,你还得痛苦地研究如何让驱动程序工作起来。驱动程序安装好后,打开设备管理器就能在“通用串行总线控制器”中发现一个新设备叫“eHomeInfraredReceiver”。同时,和廉价仿制控制器一样,你还能在“人机交互设备”中看到一个HID键盘设备。这是因为微软遥控器作为红外设备的同时还能模拟为键盘。
安装完微软遥控器后你会发现在XBMC中没有反应,这是因为Windows版XBMC不支持Windows红外设备驱动程序,所以无法检测到遥控器发送的红外线编码。如“播放”键就是无效的。但是你会发现象上、下、左、右等几个键能用,这是因为当你按下这些键时,微软遥控器象廉价仿制品一样发送的是普通键盘按键。
那么在XBMC中如何让微软遥控器工作呢?好吧,我们前面已经说过,微软遥控器是个复杂的设备,你可以通过修改注册表来改变它的按键反应。这个问题我们将专文讨论(讨论贴待发)。
修改注册表不是一件轻松的事,不过你可以使用 mceremote.zip (36.73 KB)下载次数: 502
2009-12-310:47。这个zip文件包含两个已经做好修改的.reg文件。有两个.reg文件是因为如何设定遥控器可以有两种选择:
(a) 设定遥控器发送标准MCE快捷键,使它就象前述第二类遥控器那样工作。
(b) 设定遥控器发送标准XBMC键,例如,当你按播放键时发送“P”,停止时发送“X”。
如果你想把遥控器用于Windows Media Center,你必须选择(a)。如果你不在乎微软媒体中心而仅使用XBMC,那么选择 (b) 可以使遥控器完美支持XBMC,就象原生支持一样。
此外还有使用第三方工具软件的实现方法也是值得一提的,如通过IR ServerSuite把遥控器发送的红外线编码【】转换成XBMC能识别的按键。本论坛已经有专贴介绍类似软件。
把第二类遥控器用于XBMC
让我们先看看面临什么样的问题,原装(第一类)微软遥控器如果设置成仅用于XBMC不会有什么问题,但如果你把它设定成第二类工作方式(为支持微软媒体中心软件)则无法被XBMC识别。发送多媒体键的第三类遥控器可以兼容不同媒体中心,但很少有纯粹的第三类遥控器,而且你也无法分辨你要买的是什么类型的遥控器,因此最好的办法是让第二类遥控器能够被支持。
第二类遥控器的问题是XBMC的keyboard.xml无法指定象control-shift-P(用于播放)这样的组合键。XBMC或许会在比9.11更高的版本中引入增强版的keyboard.xml文件,让你可以用这样的语句:
<pmod="ctrl,shift">Play</p>
来定义播放功能为control-shift-P,这样通过编辑keyboard.xml就能让第二类遥控器被直接支持。可你得等未来新版XBMC发布,而日期是不确定的。那么现在该怎么办?有两种选择:
(a) 使用第三方工具软件如EventGhost
(b) 自己修改XBMC源代码并自行编译出能支持的版本
通常大家选择使用EventGhost而且也能很好的工作。本论坛也就这方面的经验交流贴,自己搜索下吧。
选择 (b) 对普通用户不现实,但幸运的是有人在做这个工作。你可以到http://www.ratsauce.plus.com/xbmc.htm下载一个修改版的XBMC,它支持标准的MCE快捷键,因而能支持第二类遥控器。
总结
我们简单的概括一下,那就是生活就是复杂的!
如果你能等的话,9.11之后更新版本的XBMC或许会让你的生活变得简单些。如果你等不及的话,你可以到http://www.ratsauce.plus.com/xbmc.htm去下载支持第二类遥控器的修改版XBMC。