如何解决如何从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();
}
完成所有这些步骤后,文件创建成功。文件大小也相同。但是问题是该文件无法在任何视频播放器中播放。我猜我在FileInputStream
和FileOutputStream
上犯了一些错误。我需要帮助来纠正此错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。