簡體   English   中英

通過URI打開Android資源文件會引發FileNotFoundException

[英]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,但是我看到的每一個證據似乎都同意這是正確的格式。

由於與項目的架構有關的原因,這里直接返回InputStreamResource方法不是一個選項,因此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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM