2011-01-13 46 views
1

我在項目中有一個目錄/ sdcard/audio。該目錄包含一些音頻(wav)文件。
以下是我想要做的:
1.從目錄中讀取。
2.播放wav文件。無法讀取目錄中的文件 - android

我已經來訪問目錄編寫的代碼如下:

String path_to_media = "/sdcard/audio/"; 
File dirEffectFiles = new File(path_to_media); //gets a handle to the directory of effect files. 
Log.v(this.toString(), "Getting into path = " + path_to_media); 
Log.v(this.toString(), "Some details about the directory: path = " + dirEffectFiles.getPath() 
       + " Can read: " + dirEffectFiles.canRead() + " list:" + dirEffectFiles.list() 
       + " absolute path:" + dirEffectFiles.getAbsolutePath() + " is absolute:" + dirEffectFiles.isAbsolute()); 

輸出我得到上面是:

01-13 16:23:34.941:細節關於 的目錄:PATH =/SD卡/音頻 能閱讀:假名單:空絕對 路徑:/ SD卡/音頻是絕對的:真正的

我有以下問題:
1.如何讓上述文件夾可讀?通過設置dirEffectFiles.setReadable(true)
2.另外,請注意path_to_media以上是/ sdcard/audio /。打印時,最後一個「/」消失。這是一些內部解析的正常影響,或者我應該擔心這一點?

任何幫助是最受歡迎的,
謝謝,
Sriram。

回答

0

/上面提到的SD卡/音頻是在項目目錄中製作的目錄。這種做法是錯誤的。用於仿真的SD卡的目錄必須使用ADB(在命令提示符(Windows)),像這樣創建:

  1. adb shell mkdir /sdcard/audio - 這將創造在SD卡中的音頻/子目錄/
  2. adb push "complete path of file name to be pushed" /sdcard/audio/file-name
  3. 這重複其他波形文件的程序。

就是這樣。您應該能夠從掛載的/ sdcard目錄中讀取文件。
@thoredge:謝謝你的幫助。

1

您是否向AndroidManifest.xml添加了正確的權限?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

此外,明智的做法是使用環境的方法來獲得正確的SD卡路徑:

Environment.getExternalStorageDirectory() 

還等什麼?你怎麼得:

dirEffectFiles.exists() 
+0

我將權限行添加到清單。當我從getExternalStorageDirectory()打印詳細信息時,我將/ mnt/sdcard作爲外部存儲目錄。此外,exists()函數返回false。我想我可能不得不改變path_to_media。讓我回到你身邊。 – Sriram 2011-01-13 12:25:28