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早晨 广州 天气晴
浙公网安备 33010602011771号