В проекте есть каталог /sdcard/audio. Этот каталог содержит некоторые аудиофайлы (wav).
Вот что я пытаюсь сделать:
1. Прочтите из каталога.
2. Воспроизведите файлы wav.
Код, который я написал для доступа к каталогу, выглядит следующим образом:
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: Некоторые подробности о каталог: путь =/sdcard/audio Может читать: false list: null absolute путь:/sdcard/audio является абсолютным: true
У меня есть следующие вопросы:
1. Как я могу сделать эту папку доступной для чтения? Установив dirEffectFiles.setReadable(true)
?
2. Также обратите внимание, что path_to_media
выше /sdcard/audio/. Когда он печатается, последний "/" исчезает. Является ли это нормальным эффектом какого-то внутреннего синтаксического анализа или я должен беспокоиться об этом?
Любая помощь приветствуется,
Спасибо,
Sriram.
/sdcard/audio, упомянутый выше, был каталогом, созданным в каталоге проекта. Этот подход неверен. Каталог для эмуляции SD-карты должен быть создан с помощью adb (в командной строке (windows)):
adb shell mkdir /sdcard/audio
- это создаст аудио/подкаталог в sdcard/adb push "complete path of file name to be pushed" /sdcard/audio/file-name
Что это. Вы должны иметь возможность читать файлы из каталога mount/sdcard.
@thoredge: спасибо за вашу помощь.
Вы добавили правильное разрешение на AndroidManifest.xml?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Кроме того, разумно использовать метод среды для получения правильного пути SD-карты:
Environment.getExternalStorageDirectory()
Кроме того, что вы получаете от:
dirEffectFiles.exists()