• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ForestCho
博客园    首页    新随笔    联系   管理    订阅  订阅

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早晨 广州 天气晴

posted @ 2013-05-10 09:02  ForestCho  阅读(653)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3