我正在尝试获取res/raw/
目录中资源的URI。目标是将此URI提供给VideoView,但这有问题,而且我似乎无法使用测试代码打开该文件。
我有以下测试代码:
String uri = "android.resource://com.my.package/" + R.raw.sample_video;
File inputFile = new File(uri);
try {
InputStream is = new FileInputStream(inputFile);
byte[] bytes = new byte[50];
is.read(bytes);
Log.d("test", new String(bytes));
} catch(IOException e) {
}
new FileInputStream
行抛出一个FileNotFoundException,无论我在URI上尝试了什么变化,但我看到的每一个证据似乎都认为这是正确的形式。
由于与项目体系结构相关的原因,直接返回Resource
的{{1}}方法不是一个选项,因此URI是我能看到的唯一选项。
出了什么问题?我错误地指出了如何为这个文件指定URI?此测试代码是否无法代表VideoView是否能够读取文件?如果不是,那是什么?此测试代码是否适合您(这表明我的项目配置必定存在问题)?
答案 0 :(得分:0)
要在原始文件夹中获取sample_video
的URI:
Uri videoUri = Uri.parse("android.resource://" + getPackageName() + "/"
+ R.raw.sample_video); //do not add any extension
播放视频:
videocontainer.setVideoURI(Uri.parse(videoUri));
videocontainer.start();
videocontainer
类型的videoview
。