A file which is recorded as a 3gp file by the Android MediaRecorder is
NOT streamable. You would need to make it streamable before trying to
play it back via the MediaPlayer.

--
Roman Baumgaertner
Sr. SW Engineer-OSDC
·T· · ·Mobile· stick together
The views, opinions and statements in this email are those of the
author solely in their individual capacity, and do not necessarily
represent those of T-Mobile USA, Inc.

On Oct 18, 8:36 pm, zongan liu <liuzongan1...@gmail.com> wrote:
> After several days of agonizing, ultimately did not solve the problem,
> is hereby published issue and hoping to get friends to help.
>
> Requirements: The android to record video and transmitted through the
> socket means to save the file on the server (3gp file).
>
> Question: 3gp files saved to the server, mobile player can't open, 3gp
> file encoding is not correct.
>
> Note: stored in the phone's local system, 3gp files encoded in the
> correct format, mobile phone player to open.
>
> android record code:
>
> String hostname = "192.168.20.106";
>                 int port = 1234;
>                 try
>                 {
>                         socket = new Socket(InetAddress.getByName(hostname), 
> port);
>                 }
>                 catch (UnknownHostException e)
>                 {
>                         e.printStackTrace();
>                 }
>                 catch (IOException e)
>                 {
>                         e.printStackTrace();
>                 }
>                 ParcelFileDescriptor pfd = 
> ParcelFileDescriptor.fromSocket(socket);
>                 mMediaRecorder = new MediaRecorder();
>
>                 // 设置以流方式输出
>                 mMediaRecorder.setOutputFile(pfd.getFileDescriptor());
>                 mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
>                 
> mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
>                 mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
>                 mMediaRecorder.setOutputFormat
> (MediaRecorder.OutputFormat.THREE_GPP);
>                 mMediaRecorder.setVideoSize(176, 144);
>                 mMediaRecorder.setVideoFrameRate(15);
>                 
> mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
>                 
> mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
>                 mMediaRecorder.setMaxDuration(10000);
>
> Server receives the data  code:
> public MultiThreadServer() throws IOException
>         {
>                 serverSocket = new ServerSocket(port);
>                 // Runtime的availableProcessor()方法返回当前系统的CPU数目.
>                 executorService = 
> Executors.newFixedThreadPool(Runtime.getRuntime
> ().availableProcessors() * POOL_SIZE);
>
>                 System.out.println("服务器启动");
>         }
>
>         public void service()
>         {
>                 while (true)
>                 {
>                         Socket socket = null;
>                         try
>                         {
>                                 // 接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接
>                                 socket = serverSocket.accept();
>                                 //executorService.execute(new 
> Handler(socket));
>                                 new Thread(new Handler(socket)).start();
>
>                         }
>                         catch (Exception e)
>                         {
>                                 e.printStackTrace();
>                         }
>                 }
>         }
>
> Handler class code:
>
> public Handler(Socket socket)
>         {
>                 this.socket = socket;
>                 d = new File("D:/ds");
>                 if (!d.exists())
>                 {
>                         d.mkdirs();
>                 }
>
>                 try
>                 {
>                         store = File.createTempFile("sdsd", ".3gp", d);
>                         fos = new FileOutputStream(store);
>                         socketIn = socket.getInputStream();
>                 }
>                 catch (IOException e)
>                 {
>                         // TODO Auto-generated catch block
>                         e.printStackTrace();
>                 }
>         }
>
>         public void run()
>         {
>                 try
>                 {
>                         System.out.println("New connection accepted " +
> socket.getInetAddress() + ":" + socket.getPort());
>
>                         while ((length = socketIn.read(buffer)) != -1)
>                         {
>                                 fos.write(buffer, 0, length);
>                                 fos.flush();
>                                 System.out.println("正在写入中。。。。" + length);
>                         }
>
>                         fos.flush();
>                         store = null;
>                         socketIn.close();
>                 }
>                 catch (IOException e)
>                 {
>                         e.printStackTrace();
>                 }
>                 finally
>                 {
>                         try
>                         {
>                                 fos.close();
>                                 fos = null;
>                                 store = null;
>                                 if (socket != null)
>                                         socket.close();
>                         }
>                         catch (IOException e)
>                         {
>                                 e.printStackTrace();
>                         }
>                 }
>                 System.out.println("-----------------------------完毕");
>         }
>
> You help me find the cause of it, in this thank you. Given at the high
> score! ! !
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to