У меня есть этот метод, который возвращает все файлы по расширению в папке внутри папки активов:
public static String[] getAllFilesInAssetByExtension(Context context, String path, String extension){
Assert.assertNotNull(context);
try {
String[] files = context.getAssets().list(path);
if(StringHelper.isNullOrEmpty(extension)){
return files;
}
List<String> filesWithExtension = new ArrayList<String>();
for(String file : files){
if(file.endsWith(extension)){
filesWithExtension.add(file);
}
}
return filesWithExtension.toArray(new String[filesWithExtension.size()]);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
, если вы вызываете его с помощью:
getAllFilesInAssetByExtension(yourcontext, "", ".mp3");
, это вернет всемои mp3-файлы в корне папки assets.
, если вы вызываете его с помощью:
getAllFilesInAssetByExtension(yourcontext, "somefolder", ".mp3");
, в «somefolder» будет искать mp3-файлы
список всех файлов, которые нужно открыть, вам понадобится:
AssetFileDescriptor descriptor = getAssets().openFd("myfile");
Чтобы воспроизвести файл, просто сделайте:
MediaPlayer player = new MediaPlayer();
long start = descriptor.getStartOffset();
long end = descriptor.getLength();
player.setDataSource(this.descriptor.getFileDescriptor(), start, end);
player.prepare();
player.setVolume(1.0f, 1.0f);
player.start();
Надеюсь, это поможет