[英]Opening Android resource file by URI raises FileNotFoundException
我試圖在我的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進行何種變體, new FileInputStream
行都將引發FileNotFoundException,但是我看到的每一個證據似乎都同意這是正確的格式。
由於與項目的架構有關的原因,這里直接返回InputStream
的Resource
方法不是一個選項,因此URI是我所看到的唯一選項。
怎么了? 在為該文件指定URI時我弄錯了嗎? 此測試代碼是否代表VideoView是否能夠讀取文件? 如果沒有,那是什么? 此測試代碼對您有用嗎(這表明我的項目配置一定有問題)?
要在原始文件夾中獲取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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.