如何解决在JAVA中保存h264文件有效,但是在android中保存损坏的文件
我正在尝试将h264格式的字节流保存到h264文件中。 我是用JAVA制作的,正在保存文件,可以打开它并观看视频。 但是,当我尝试在android中使用完全相同的代码,并且试图通过android设备保存文件时,文件已损坏。 这是我的代码(适用于android和java):
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES);
File file = new File(path,"/" + "filename2.mp4");
FileOutputStream output2 = null;
try {
output2 = new FileOutputStream(file,true);
output2.write(my_stream.toByteArray());
} catch (IOException e) {
e.printstacktrace();
} finally {
try {
output2.close();
} catch (IOException e) {
e.printstacktrace();
}
}
- 当然,路径在Java和android版本中是不同的
解决方法
可能是因为my_stream.toByteArray()只是整个视频的一部分。循环读取视频流,然后逐块将其写入输出流。
或者有此功能可以为您完成:
Files.copy(videoInputStream,filePath,StandardCopyOptions.REPLACE_EXISTING);
或者如果输入是字节数组:
Files.write(outputPath,bytes,StandardOpenOptions.WRITE,StandardOpenOptions.CREATE_NEW,StandardOpenOptions.CREATE);
https://docs.oracle.com/javase/7/docs/api/java/nio/file/StandardOpenOption.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。