PPT遥控器的实现
1、想法
由于本人需要参加的讨论会比较多,每次都会涉及到PPT,有时候坐在电脑旁讲会比较不生动,前人就发明了PPT遥控笔。
我们经常见的那种遥控笔是基于红外的,必须在电脑上有个红外接收器,为了方便,用手机控制PPT的想法油然而生,
2、功能
这个应用可以自由的上下翻动PPT,并且跳到任意PPT指定页。由于制作了一天功能还不成熟,但是跟红外比优势明显
,红外遥控笔不能被档,该应用可以隔两面墙,红外遥控笔还很贵。
3、原理
这个应用原理很简单,首先需要在PC(该PC和手机在同一无线热点下) 上运行一个服务器程序,改程序负责建立socket和
监听收到的消息,
ServerSocket serversocket=null; PrintWriter out=null; BufferedReader in=null; Robot robot = new Robot(); try { // 在下面实例化了一个服务器端的Socket连接 serversocket=new ServerSocket(6677); } catch(IOException e) { System.err.println("Could not listen on port:9999."); System.exit(1); } Socket clientsocket=null; while(true){ try { // accept()方法用来监听客户端的连接 clientsocket=serversocket.accept(); } catch(IOException e) { System.err.println("Accept failed."); System.exit(1); } in = new BufferedReader(new InputStreamReader(clientsocket.getInputStream())); String str=in.readLine(); System.out.println(str); if(str.equals("up")) robot.keyPress(KeyEvent.VK_UP); else if(str.equals("down")) robot.keyPress(KeyEvent.VK_DOWN); else { if(Integer.parseInt(str)>0) { for(i=0;i<Math.abs(Integer.parseInt(str));i++) { robot.keyPress(KeyEvent.VK_DOWN); robot.delay(50); } } else { for(i=0;i<Math.abs(Integer.parseInt(str));i++) { robot.keyPress(KeyEvent.VK_UP); robot.delay(50); } } }
手机上需要安装一个软件,首先首先需要设置需要连接PC机的IP
连接完成后进入如下界面
这个界面中我们可以看到上下翻动键,滚动条或者是进度条,我们可以用来直接跳到具体PPT,当然还有个计时器,你可以看下你的演讲讲了多久。
以下是手机程序的核心代码:
public void onClick(View v) { createSoc(); if(v.equals(iupbutton)&&i>1) { i--; out.println("up"); setTitle("按键滚动PPT--"+i); } if(v.equals(idownbutton)&&i>0) { i++; out.println("down"); setTitle("按键滚动PPT--"+i); } out.flush(); seekbar.setProgress(i); } public void createSoc() { try { hellosocket=new Socket(strIP,port); hellosocket.setSoTimeout(10000); out=new PrintWriter(hellosocket.getOutputStream(),true); } catch(UnknownHostException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } }
就这么多,做了一天,最求功能,代码很乱。
于 2013/5/10早晨 广州 天气晴