I have code:
private MediaRecorder recorder;
>
> String hostname = "192.168.1.125";
> int port = 1935;
> Socket socket;
> ParcelFileDescriptor pfd;
> public void start()
> {
>
> try {
> socket = new Socket(InetAddress.getByName(hostname), port);
> pfd = ParcelFileDescriptor.fromSocket(socket);
>
> } catch (UnknownHostException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> } catch (IOException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
> recorder.setOutputFile(pfd.getFileDescriptor());
> // String filename = String.format("/sdcard/%d.mp4",
> System.currentTimeMillis());
> //
> // recorder.setOutputFile(filename);
>
> try
> {
> recorder.prepare();
> recorder.start();
> }
> catch (IllegalStateException e)
> {
> e.printStackTrace();
> }
> catch (IOException e)
> {
> e.printStackTrace();
> }
> }
*and Server side:*
import java.io.DataInputStream;
> import java.io.FileOutputStream;
> import java.io.IOException;
> import java.io.InputStream;
> import java.net.ServerSocket;
> import java.net.Socket;
>
> public class Server {
>
> public static void main(String[] args)
> {
>
> try
> {
> System.out.println("create sock");
> ServerSocket svsock = new ServerSocket(1935);
>
> System.out.println("accept");
> Socket sock = svsock.accept();
> System.out.println("buffer read");
>
> FileOutputStream outFile = null;
>
> String filename = String.format("%d.mp4", System.currentTimeMillis());
>
> try {
> outFile = new
> FileOutputStream(filename);
> System.out.println(filename);
> } catch (IOException e1) {
> e1.printStackTrace();
> }
>
> InputStream is = new
> DataInputStream(sock.getInputStream());
> byte[] byteBuffer = new byte[1024];
>
> int allsize = 0;
> while(sock.isConnected()) {
>
> int size = is.read(byteBuffer);
> if (size == -1){
> break;
> } else {
>
> outFile.write(byteBuffer, 0, size);
> }
> allsize += size;
>
> }
> System.out.println("close size=" +
> allsize);
> outFile.close();
> sock.close();
>
> }
> catch(Exception e)
> {
> e.printStackTrace();
> }
>
> System.out.println("endmain");
> }
> }
I test it on *Android 2.2.2 (HTC quiet brilliant) *and all works fine. When
I press "start" button Server create file and record data from stream to
file. After this file is normally play in VLC player and etc.
But when I test it on *Android 4.0.4 Galaxy S2 *and *Android 4.0.4 HTC*(sorry,
forget model), Server create file and record data from stream to
file but not play in VLC (and other players too) and give me error
mp4 error: MP4 plugin discarded (no moov,foov,moof box)
> avcodec error: Could not open �codec demux error: Specified event object
> handle is invalid
> ps error: cannot peek
> main error: no suitable demux module for `file/:///C:/1345461283455.mp4'
I also try to upload this file to youtube, but after upload youtube give me
error like file format is unsupported.
But *Android 4.0.4 Galaxy S2 *and *Android 4.0.4 HTC* succesfully create
and then play file when I save it on phone memory (not stream to server)
I think problem maybe on server side, or something changed on android 4.0.4.
Please, help me.
Thanks in advance.
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en