有人可以解释为什么从我的应用程序缓存目录下载/播放视频不起作用,但从我的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
,那么它会被击中并错过它是否会起作用。
任何人都可以解释这种行为吗?
答案 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);
}