Can you explain better your problem ? Can you receive data side
server ?
On 19 Ott, 05:36, zongan liu <[email protected]> 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 [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
-~----------~----~----~----~------~----~------~--~---