微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在JAVA中保存h264文件有效,但是在android中保存损坏的文件

如何解决在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/Files.html#write(java.nio.file.Path,%20byte[],%20java.nio.file.OpenOption...)

https://docs.oracle.com/javase/7/docs/api/java/nio/file/StandardOpenOption.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。