Her ikisi de localhost'ta iki basit program, sunucu ve istemci var. Benim yapmak istediğim, videoyu sunucudan istemciye soket aracılığıyla akıtmak ve istemcinin soketin dosya kodunu kullanarak oynatabilmesi. Önce bir mesaj yollamaya çalışıyorum ve müşteri bunu alabilir. Bundan sonra sunucunun kartından istemciye birkaç bayt video yolluyorum. İstemci bu baytları alabilir, ancak oynayamaz. Sorunu nasıl çözeceğini bilen var mı? İşte Soket üzerinden video akışı ve istemciden oynatma
benim sunucu ve istemci kod parçacıklarını geçerli:Sunucu:
//Receive request from client.
Socket client=serversocket.accept();
System.out.println("accept");
//Receive client message.
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
String str=in.readLine();
System.out.println("read:"+str);
//Send message to client.
//PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true);
//out.println("server message");
FileInputStream fis=new FileInputStream("/sdcard/toystory3.3gp");
byte buffer[]=new byte[2000];
fis.read(buffer,0,20);
DataOutputStream out=new DataOutputStream(client.getOutputStream());
out.write(buffer,0,20);
in.close();
out.close();
client.close();
System.out.println("close");
Müşteri: Bu mp4
gibi çünkü 3gp
(ve diğer avi
türetilen dosyaları çalışmaz
Socket socket=new Socket("127.0.0.1",4444);
String message="Initial"+"\r\n";
//Send message to server.
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
//Receive message from server.
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String msg=br.readLine();
//ParcelFileDescriptor pfd=ParcelFileDescriptor.fromSocket(socket);
//MediaPlayer m=new MediaPlayer();
//m.setDataSource(pfd.getFileDescriptor());
//m.prepare();
//m.start();
if(msg!=null)
{
System.out.println("Data received.");
System.out.println(msg);
}
else
{
System.out.println("Data not received.");
}
out.close();
br.close();
socket.close();
Bakın http://stackoverflow.com/questions/6116880/stream-live-video-from-phone-to-phone-using-socket-fd/10260068#10260068 –