Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MediaRecorder设置输出文件套接字。文件未打开_Android_Sockets_Google Glass_Android Mediarecorder - Fatal编程技术网

Android MediaRecorder设置输出文件套接字。文件未打开

Android MediaRecorder设置输出文件套接字。文件未打开,android,sockets,google-glass,android-mediarecorder,Android,Sockets,Google Glass,Android Mediarecorder,谷歌眼镜XE19.1设备 我正在尝试在远程服务器上写入文件: mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); mMediaRecorder.setVideoEncodingBitRate(0x4c4b40);

谷歌眼镜XE19.1设备

我正在尝试在远程服务器上写入文件:

        mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
        mMediaRecorder.setVideoEncodingBitRate(0x4c4b40);
        mMediaRecorder.setAudioChannels(2);
        mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        mMediaRecorder.setAudioEncodingBitRate(0x17700);
        mMediaRecorder.setAudioSamplingRate(44100);

        ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
        mMediaRecorder.setOutputFile(pfd.getFileDescriptor());
在远程服务器上写入文件,但当我尝试打开此文件时,会出现下一个错误:

ftypisom isom3gp4 free
但当我保存在sd卡中时,就可以了。怎么了

另外,这个测试代码:非常好用。文件打开并播放

   socket = new Socket(host,4444);


    File file = new File("C:/video.mp4");
    long length = file.length();
    byte[] bytes = null;
    bytes = new byte[1024]; 
    FileInputStream fis = new FileInputStream(file);
    BufferedInputStream bis = new BufferedInputStream(fis);
    BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
    DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
    int count;

    while((count = bis.read(bytes))>0){
        dos.write(bytes, 0, count);
    }
    System.out.println("File send");
    bos.flush();
    bos.close();
    fis.close();
    bis.close();
    socket.close();

你解决这个问题了吗?我发现问题是mediaRecoder没有将任何头信息写入套接字。但写入文件。否。但我知道,什么头信息写到结束文件如何解析它?数据从哪里开始?我尝试创建算法,但失败了。。。您可以在WinHex程序中看到头部信息。您需要将开始和结束文件保存在本地记录(外部/内部内存)和文件中,通过套接字接收。如果你能创建算法,请在这里发布答案