2012-06-06 97 views
2

我已經擺弄了很長時間。我找不到爲什麼我的Android應用程序找不到我的文件/res/raw/video.mp4。我在API 15上,手機與v4.0.3保持同步。訪問Android中的資源文件

測試代碼目前看起來是這樣的:

String file = "android.resource://" + getPackageName() + "/" + R.raw.movie; 
File f = new File(file); 
message = f.exists() ? "file exists" : "file missing"; 

我曾嘗試在消息字符串到目前爲止結果的所有組合被返回爲「文件丟失」。從資源訪問文件的正確方法是什麼?嘗試了明顯的「/res/raw/video.mp4」等,但都失敗了。

+0

此答案可能對您有幫助嗎? http://stackoverflow.com/a/2856501/1063730 – yoshi

+0

是的,我似乎能夠使用該輸入流打開它,但我需要獲取地址作爲字符串才能使用ThumbnailUtils.createVideoThumbnail()這是我的主要目標(但我想深入瞭解爲什麼我的示例無法正常工作)。 – BlueVoodoo

+0

那麼,這將教我在發佈答案之前閱讀評論... yoshi發佈了一條鏈接,說與我的答案相同的東西。 :p – Barak

回答

3

假設你想開個流處理你應該做這樣的文件:

InputStream raw = getResources().openRawResource(R.raw.movie); 

編輯

好了,現在我知道到底是什麼你想,我有壞消息,不是真的有可能,

看到這個SO question

基本上,您需要將文件從資源中複製到可以像SD卡或內部存儲器那樣獲取的地方。

+0

是的,這有效,但我不需要爲這個測試打開一個InputStream。 – BlueVoodoo

+0

好的。謝謝你的澄清。 – BlueVoodoo

0

String url = "file:///android_asset/raw/filename.jpg「;

+0

同樣的結果。嘗試過「新文件(」file:///android_asset/raw/video.mp4「)」。也嘗試過「file:///android_asset/res/raw/video.mp4」,但這也不起作用。 – BlueVoodoo