스파트폰간에 UDP 통신을 이용해 리모트 동영상 촬영을 구현할려고 하고있습니다.
일단 클라이언트쪽에서 버튼으로서 화면을 롱터치할때 원격으로 상대방 스마트폰에 동영상 촬영이 시작하게끔 문자로서 "start" 로 설정했습니다... 문제는 서버쪽에서 어떻게 클라이언트에서 받은 메세지를 판독하여 동영상 촬영 구현을 시킬가입니다만.... 영 잘모르겠습니다.... 도움부탁드립니다..
<클라이언트>
public void onLongPress(MotionEvent motionevent)
{
Log.v("INFO", "onLongPress");
if (myRecorder==null)
{
myVideoView_rec.setVisibility(View.VISIBLE);
myVideoView_play.setVisibility(View.INVISIBLE);
myRecorder = new MediaRecorder();
isRecording = false;
isPlay = false;
}
if (isRecording!=true)
{
if (initializeVideoSettings()==true) // MediaRecorder의 설정
{
myRecorder.start(); // 녹화개시
isRecording = true; // 녹화중 플러그
InetAddress serverAddr = InetAddress.getByName(Server.SERVERIP);
DatagramSocket socket = new DatagramSocket();
byte[] buf = ("start").getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length, serverAddr, UDP_SOCKET_PORT);
socket.send(packet);
}
}
else
{
// 녹화중이라면녹화중지
//--------------------------
myRecorder.stop();
myRecorder.reset();
myRecorder.release();
isRecording = false;
myRecorder = null;
InetAddress serverAddr = InetAddress.getByName(Server.SERVERIP);
DatagramSocket socket = new DatagramSocket();
byte[] buf = ("stop").getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length, serverAddr, UDP_SOCKET_PORT);
socket.send(packet);
}
}
<서버>
public void setUDP(){
try{
socket = new DatagramSocket(port);
Log.d("UDP","S:Connecting...");
byte[] buf = new byte [512];
while(true){
receivePacket = new DatagramPacket(buf,buf.length);
Log.d("UDP", "S: Receiving...");
socket.receive(receivePacket);
Log.d("UDP", "S: Received : " + new String(receivePacket.getData()) + "");
Log.d("UDP", "S: Done.");
InetAddress clientAddr = receivePacket.getAddress();
port = receivePacket.getPort();
String s = new String(receivePacket.getData());
Log.d("UDP", "Receive : " + s);
s = s.toUpperCase();
buf = s.getBytes();
Log.d("UDP", "UpperCase : " + s);
receivePacket = new DatagramPacket(buf, buf.length, clientAddr, port);
Log.d("UDP", "Send " + new String(buf));
socket.send(receivePacket);
}
} catch (Exception ex) {
Log.e("UDP", "S: Error", ex);
}
}
@Override
public void onLongPress(MotionEvent motionevent)
{
Log.v("INFO", "onLongPress");
if (myRecorder==null)
{
myVideoView_rec.setVisibility(View.VISIBLE);
myVideoView_play.setVisibility(View.INVISIBLE);
myRecorder = new MediaRecorder();
isRecording = false;
isPlay = false;
}
if (isRecording!=true)
{
if (initializeVideoSettings()==true)
{
myRecorder.start(); // 녹화개시
isRecording = true; //
}
}
else
{
myRecorder.stop();
myRecorder.reset();
myRecorder.release();
isRecording = false;
myRecorder = null;
}
}