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 に答える