Java 按URI打开Android资源文件会引发FileNotFoundException

Java 按URI打开Android资源文件会引发FileNotFoundException,java,android,Java,Android,我正在尝试获取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);

我正在尝试获取
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) {

}
无论我在URI上尝试了什么变化,
newfileinputstream
行都会抛出一个FileNotFoundException,但我看到的每一条证据似乎都表明这是正确的形式

由于与项目架构相关的原因,直接返回
InputStream
Resource
方法在这里不是一个选项,因此URI是我能看到的唯一选项


出什么事了?我在如何指定此文件的URI时出错了吗?此测试代码是否不能代表VideoView是否能够读取文件?如果没有,是什么?此测试代码是否适用于您(这表明我的项目配置一定出了问题)?

要获取原始文件夹中的
sample\u 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

您的ressouce是什么类型的!!录像<代码>文件(字符串)采用路径,而不是URI。