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 -~----------~----~----~----~------~----~------~--~---