Video-streaming über socket und die Wiedergabe vom client

Habe ich zwei einfache Programme, server und client, die beide auf localhost. Was ich will zu tun ist, um streaming-video von dem server zu dem client über socket und client spielen kann es durch die Verwendung filediscriptor der Steckdose. Zuerst habe ich versucht Sie uns eine Nachricht, und der client Sie empfangen können. Danach sende ich ein paar bytes an das video von dem server'sd-Karte an den client. Erhält der Kunde diese bytes aber nicht wiedergeben kann. Wer weiß, wie das problem zu lösen?

Hier ist meine server-und client-code-snippets:

Server:

        //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");

Client:

 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();

InformationsquelleAutor charlie | 2010-11-20

Schreibe einen Kommentar