我正试图为我的用户提供使用外部或内部存储的能力。我正在显示图像和视频(具有科学性)。将介质存储在SD卡上时,一切正常。但是当我在内部存储媒体时,只会显示图像。无论我尝试如何尝试加载并显示存储在applicationcontext.getFilesDir()下的媒体时,都会遇到各种错误。视频播放器可以播放存储在内部存储器上的视频吗?
将视频视图的内容设置为这样的文件有窍门吗?
ContentResolver能帮助我吗?
在相关说明中,假设外部存储存在是否被认为是不正确的形式?
由于提前,
希德
下面是一个版本的失败,“无法播放视频。很抱歉,此视频无法播放”。但我有许多其他的失败模式。我可以将内部视频复制到临时存储(外部)并播放它,因此将此副本复制到内部确实可以创建有效的电影。当我尝试直接从内部存储器播放它时,它只会失败。
videoFile = new File(this.getFilesDir() + File.separator + "test.mp4");
InputStream data = res.openRawResource(R.raw.moviegood);
try {
OutputStream myOutputStream = new FileOutputStream(videoFile);
byte[] buffer = new byte[8192];
int length;
while ((length = data.read(buffer)) > 0) {
myOutputStream.write(buffer);
}
//Close the streams
myOutputStream.flush();
myOutputStream.close();
data.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
vview.setKeepScreenOn(true);
vview.setVideoPath(videoFile.getAbsolutePath());
vview.start();
请格式化问题/代码,否则很难阅读。 你会得到什么样的例外?如果你在你的catch子句中记录栈跟踪,这将会有所帮助。 无论如何,你是否找到了从内部存储器播放视频的方法?我正在寻找相同的,并得到一个错误,如“java.io.IOException:准备失败。” – 2010-08-04 09:14:15
我在http://code.google.com/p/android/issues/detail?id=10197 – 2010-08-04 19:54:29
提交了一个错误报告感谢您报告错误。我很久以前就放弃了内部存储。客户的预算不允许我花更多的时间来处理这个问题。 – shellman 2010-09-06 17:16:58