在我的项目中,我有一些原始的音乐。我可以通过这种方式阅读并轻松播放它们:
Field[] fields = R.raw.class.getFields();
for (int i = 0; i < fields.length - 1; i++) {
SongInfo info = new SongInfo();
try {
String name = fields[i].getName();
if (!name.equals("ringtones")) { info.setFileName(name + ".mp3");
info.setFavorite(pref.getString(info.getFileName()));
int audioResource = R.raw.class.getField(name).getInt(name);
info.setAudioResource(audioResource);
}
info.setName(name);
} catch (Exception e) {
// TODO: handle exception
Log.e("LOG", "Error: " + e.getMessage());
}
listSong.add(info);
现在我将我的音乐投入ASSET FOLDER,并改变我的代码(我从ASSET读取它们):
String[] files = context.getAssets().list("mp3");
for (int i = 0; i < files.length ; i++) {
SongInfo info = new SongInfo();
String name = files[i];
name = name.substring(0, name.length() - 4);
if (!name.equals("ringtones")) {
info.setFileName(name);
info.setFavorite(pref.getString(info.getFileName()));
//int audioResource = R.raw.class.getField(name).getInt(name);
//info.setAudioResource(audioResource );
}
listSong.add(info);
}
现在我可以正确地从资产中读取它们,但只是为了播放它们,我需要int audioResource。(评论的行) 如何访问此int audioResource? 如何从资产中获取(名称)? 有什么建议吗?