如何从Android中的字节数组列表创建文件?

问题描述

我正在尝试使用WebRTC传输一个.mp4文件,它是DataChannel。为此,我将文件分成如下所示的块:

FileInputStream is = new FileInputStream(file);
byte[] chunk = new byte[260000];
int chunkLen = 0;
sentFileByte = new ArrayList<>();
while ((chunkLen = is.read(chunk)) != -1) {
    sentFileByte.add(chunk);
}

之后,按索引发送块,如下所示:

byte[] b = sentFileByte.get(index);
ByteBuffer bb = ByteBuffer.wrap(b);
bb.put(b);
bb.flip();
dataChannel.send(new DataChannel.Buffer(bb,true));

在接收器端,我正在接收块并将其添加到Arraylist

receivedFileByteArr.add(chunkByteArr);

成功接收所有块后,我尝试将其转换为如下文件

String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + "/" + fileName;
File file = new File(path);
try {
     FileOutputStream fileOutputStream = new FileOutputStream(file);
     for (int i = 0; i < receivedFileByteArr.size(); i++) {
         fileOutputStream.write(receivedFileByteArr.get(i));
     }
     fileOutputStream.close();
 } catch (FileNotFoundException e) {
      e.printstacktrace();
 } catch (IOException e) {
      e.printstacktrace();
 }

完成所有这些步骤后,文件创建成功。文件大小也相同。但是问题是该文件无法在任何视频播放器中播放。我猜我在FileInputStreamFileOutputStream上犯了一些错误。我需要帮助来纠正此错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)