0
我的/ res/raw目錄中有一個名爲keyclick.wav(/res/raw/keyclick.wav)的小型解壓縮.wav文件。從/ res/raw中讀取MediaPlayer.create()的FileNotFoundException
然而,我偶爾看到拋出的異常導致的活性崩潰:
java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed at ...
android.content.res.AssetManager.openNonAssetFdNative(Native Method)
android.content.res.AssetManager.openNonAssetFd(AssetManager.java:427)
android.content.res.Resources.openRawResourceFd(Resources.java:857)
android.media.MediaPlayer.create(MediaPlayer.java:662)
它說:「它可能是壓縮」,但我仔細檢查過,也沒有被壓縮。
我這是怎麼實例化的MediaPlayer:
this.clickPlayer = MediaPlayer.create(this.getActivity(), R.raw.keyclick);
我上傳的文件,這樣就可以直接看到它:
http://inadaydevelopment.com/stackoverflow/keyclick.wav
的文件只有664個字節,它不是壓縮。爲什麼系統無法獲取文件描述符?
你能顯示代碼呢? – DigCamara 2013-04-05 22:41:23
@Kenny Wyland ..從錯誤日誌中,我猜'AssetManager'無法在它的'AssetPaths'中找到文件,即預先知道的路徑列表。如果'/ res/raw'路徑不是一個硬性約束,你可以檢查你是否仍然面臨與'/ mnt/sdcard0'一樣的目錄問題? – Ganesh 2013-04-05 22:49:12
@DigCamara我添加了用於創建MediaPlayer的代碼。 – 2013-04-05 23:06:30