2

アプリケーションで、環境設定で指定したフォルダー内の音楽ファイルのみをスキャンしたいと考えています。オーディオ ブックなどの他の音楽ファイルが含まれないようにします。

現在、すべての音楽ファイルをスキャンするこのコードを作成しました。

private String[] getTrackList() {
        String[] result = null;
        String[] projection = { MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.DISPLAY_NAME,
                MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.TITLE };
        String selection = MediaStore.Audio.Media.IS_MUSIC + "!=" + 0;
        cursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                projection, selection, null, MediaStore.Audio.Media.TITLE
                        + " ASC");
        result = new String[cursor.getCount()];
        int position = 0;
        for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
            columnIndex = cursor
                    .getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE);
            result[position] = cursor.getString(columnIndex);
            position++;
        }
        return result;
    }
4

1 に答える 1

1

同様の質問への回答を確認してください(画像に関するものですが、同じ考え方が音声にも当てはまるはずです):

メディアストアの URI からファイル名とパスを取得する

DATA にはファイル パスが格納されているようです。where句の一部として列を使用するとMediaStore.Audio.Media.DATA、必要なディレクトリからオーディオファイルのみを返すことができると思います。

于 2012-07-01T12:21:11.373 に答える