从app cache dir播放视频

时间:2011-08-12 02:54:53

标签: android video video-streaming

有人可以解释为什么从我的应用程序缓存目录下载/播放视频不起作用,但从我的SD卡下载/播放相同的视频确实有效吗?

注意:正在下载此视频。我在调用VideoView.setVideoPath(...)之前保存到内存中。

// Works
File file = new File(Environment.getExternalStorageDirectory(), "vid-test.3gp");

// Does not work
File file = new File(getCacheDir(), "vid-test.3gp");

在每种情况下,相关文件

如果我尝试拨打VideoView.setVideoURI(...)并将视频“流式传输”到我的VideoView,那么它会被击中并错过它是否会起作用。

任何人都可以解释这种行为吗?

1 个答案:

答案 0 :(得分:2)

这可能是一个许可问题。这是一个工作剪辑:

InputStream in = connection.getInputStream();

File file = new File(getApplicationContext().getCacheDir() ,fileName);

if(!file.exists()){
    file.setReadable(true);

    file.createNewFile();


    if (file.canWrite()){

        FileOutputStream out = new FileOutputStream(file);   

        byte[] buffer = new byte[1024];
        int len1 = 0;
        while ( (len1 = in.read(buffer)) > 0 ) {
            out.write(buffer,0, len1);
        }

        out.close();
    }

    in.close();

    Runtime.getRuntime().exec("chmod 755 "+getCacheDir() +"/"+ fileName);                       

}