0

次の場所に保存されている「raw」フォルダーからこれらのオーディオファイルを保存するにはどうすればよいですか。

int[] lessonClips = { R.raw.button_a, R.raw.button_2, R.raw.button_3,
                R.raw.button_4, R.raw.button_5, R.raw.button_6 };

ArrayList < HashMap < ?>>のような HashMap パラメータを持つ ArrayList に

私が使用しているクラスには次のメソッドがあります

/** SD カードからすべての mp3 ファイルを読み取り、詳細を ArrayList に格納する関数 * */

public ArrayList<HashMap<String, String>> getPlayList(){
                    File home = new File(new String("/sdcard/audio"));

                    if (home.listFiles(new FileExtensionFilter()).length > 0) {
                        for (File file : home.listFiles(new FileExtensionFilter())) {
                            HashMap<String, String> song = new HashMap<String, String>();
                            song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
                            song.put("songPath", file.getPath());

                            // Adding each song to SongList
                            songsList.add(song);
                        }
                    }
                    // return songs list array
                    return songsList;
                }

そのため、これらのオーディオファイルを文字列に変換して、そのメソッド内で使用しようとしています

4

3 に答える 3

0

これが私が考えていることです。コードからは、特定のディレクトリからmp3ファイルのみをプルしているように見えます。つまり、プレイリストは1つだけになります。この場合、次のように曲の名前を保存します。

ArrayList<String> songList;

またはのように:

ArrayList<Song> songList; //10s' suggestion.

元の質問については、次のようなものを試すことができます。

for(int x = 0; x < lessonClips.length; x++)
{
    songList.add(getApplicationContext().getResources().
               getResourceEntryName(lessonClips[x]);
}
于 2012-07-14T23:04:27.787 に答える
0

私はJromと10sに完全に同意します。HashMap を使用する理由。ArrayList を使用します。

于 2012-07-14T22:28:04.403 に答える
0

今、私はあなたがやろうとしていることを理解しています。別の解決策があります。このようなものを使用しているにもかかわらず、HashMapこれを実装して、コードが将来の変更に対してより具体的になるようにしてください。

プロパティを使用して song オブジェクトを実装します。

public class Song {
   String title;
   String path;
   int resource; //R.raw.*
   //setters and getters
}

そして、次のオブジェクトがあります。ArrayList<HashMap<int, Song>>;

このようにして、すべての曲の詳細を 1 つのオブジェクトに格納し、必要に応じてさまざまなプレイリストを作成し、HashMap で各曲の ID を取得して、簡単にアクセスできるようにします。

各曲に ID を付けたくない場合は、次のようにしますArrayList<ArrayList<Song>>

将来、曲にアーティストや何かを追加する必要があるかもしれません。これは、そのような変更に対してより堅牢であり、コードをきれいに保つための最良の方法です。

于 2012-07-14T22:43:36.410 に答える