思考
既然决定了开发一款手机遥控器,那么首先确定开发的功能和实现方式。
实现方式暂定以在PC端模拟键盘的方式触发快捷键。
功能需求
首先是遥控器上的按钮。首先是我用的播放器是PotPlayer64,常用的就是快进、后退、播放/暂停、下一文件、音量等。
参考了自己的电视遥控器,感觉换台什么的为主,在这里实用性不强,我也不需要换台。
然后是DVD遥控器,播放操作基本还是可以,不过上下左右之类的貌似也没有什么用。
总结了一下,还是简单的设计,不常用的这个版本先不实现。
下面是按钮清单和对应的播放器快捷键:
播放控制 | 播放/暂停 | Space |
停止 | F4 | |
快进 | Right | |
快退 | Left | |
快进X2 | Control+Right | |
快退X2 | Control+Left | |
快进X3 | Alt+Right | |
快退X3 | Alt+Left | |
音量 | 放大 | Up |
缩小 | Down | |
静音 | M | |
节目 | 下一个 | PageDown |
上一个 | PageUp |
实现方式
前面说过我决定实现方式以在PC端模拟键盘的方式触发快捷键。还有2种候选方式是调用AP和调用Windows消息,
为什么这么选择模拟键盘呢?首先是兼容问题,现在国内的播放器市场很复杂,各种播放器都有人在用。提供API的播放器很少,我知道的貌似只有VLC之类的。Windows消息方式实在太复杂,效果估计和模拟键盘的方式差不多。
那么模拟键盘又是怎么实现的呢?首先看看通信结构
手机要访问电脑首先需要在电脑上开发一个接收消息的服务器,然后服务器解析消息命令转换成触发键盘消息,正好User32的API里面提供了键盘事件的接口。那么流程就很简单了: