我的Android应用从服务器下载了一堆照片和视频,我想要缓存这些数据。我已经使用DiskLruCach库来缓存图像,它工作正常,但现在我也要缓存视频。
我尝试过这样的东西,但似乎没有用 - 我在视频的缓存目录中找不到任何内容:
private boolean writeVideoToFile(String videoUri, DiskLruCache.Editor editor ) throws IOException, FileNotFoundException {
OutputStream out = null;
FileOutputStream fos;
try {
out = new BufferedOutputStream( editor.newOutputStream(0), Utils.IO_BUFFER_SIZE );
File videoFile = Utils.createFile(Utils.TYPE_VIDEO_FILE);
fos = new FileOutputStream(videoFile);
fos.write(videoUri.getBytes());
fos.close();
return true;
} finally {
if ( out != null ) {
out.close();
}
}
}
任何人都可以给我一个关于如何实现这个目标的想法吗?
答案 0 :(得分:1)
信息不足,但我想调用getBytes()是问题,可能是OutOfMemory异常。
不要将整个视频文件读入内存(调用getBytes)。使用一个小的中间缓冲区,通过块写入/缓存视频文件块。
答案 1 :(得分:0)
您正在为字符串 videoUri调用getBytes()。 这真的是你的意思吗?