来自资产的getInt(字符串)

时间:2017-05-14 10:09:06

标签: java android assets

在我的项目中,我有一些原始的音乐。我可以通过这种方式阅读并轻松播放它们:

 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? 如何从资产中获取(名称)? 有什么建议吗?

0 个答案:

没有答案