0

我的 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();
        }
    }
}

谁能给我一个关于如何实现这一目标的想法?

4

2 回答 2

1

没有足够的信息,但我猜对 getBytes() 的调用是问题所在,可能是 OutOfMemory 异常。

不要将整个视频文件读入内存(调用 getBytes)。改用一个小的中间缓冲区,逐块写入/缓存视频文件。

于 2013-06-29T14:10:20.577 回答
0

您正在为String videoUri 调用 getBytes()。这真的是你的意思吗?

于 2013-06-30T08:04:29.203 回答