Reputation: 11
I am trying to make a wifi p2p video chat application.I can establish a wifi-p2p connection and I made a simple wifi p2p text chat application. How to capture the video , send and receive it? I have tried the following code. When I try to run this , it always gives some exception such as :illegalstateexception mediarecorder.start() or java.net.UnknownHostException
Sender Thread:
public class SendVideoThread implements Runnable{
public void run(){
try {
if(SERVERIP!=null){
handler.post(new Runnable() {
@Override
public void run() {
}
});
serverSocket = new ServerSocket(SERVERPORT);
while(true) {
//listen for incoming clients
Socket client = serverSocket.accept();
handler.post(new Runnable(){
@Override
public void run(){
}
});
try{
final ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(client);
handler.post(new Runnable(){
@Override
public void run(){
recorder = new MediaRecorder();
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.setVideoFrameRate(20);
recorder.setVideoSize(176,144);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
//recorder.setPreviewDisplay(mHolder.getSurface());
try {
recorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
recorder.start();
}
});
} catch (Exception e) {
handler.post(new Runnable(){
@Override
public void run(){
}
});
e.printStackTrace();
}
}
} else {
handler.post(new Runnable() {
@Override
public void run(){
}
});
}
} catch (Exception e){
handler.post(new Runnable() {
@Override
public void run() {
}
});
e.printStackTrace();
}
}
}
Receiver Thread:
public class ReceiveVideoThread implements Runnable{
@Override
public void run() {
try {
clientSocket = new Socket(Data.socket.getInetAddress(),SERVERPORT);
handler.post(new Runnable() {
@Override
public void run() {
}
});
handler.post(new Runnable() {
@Override
public void run() {
try {
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(clientSocket);
pfd.getFileDescriptor().sync();
mp.setDataSource(pfd.getFileDescriptor());
pfd.close();
mp.setDisplay(mHolder);
mp.prepareAsync();
mp.start();
} catch (IOException e) {
e.printStackTrace();
}
}
});
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Upvotes: 0
Views: 318