Android MediaRecorder设置输出文件套接字。文件未打开
谷歌眼镜XE19.1设备 我正在尝试在远程服务器上写入文件: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);
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程序中看到头部信息。您需要将开始和结束文件保存在本地记录(外部/内部内存)和文件中,通过套接字接收。如果你能创建算法,请在这里发布答案