2

現在、次のコードを使用して、SD カード上の特定のオーディオ ファイル名 (mymusic1.mp3 など) を検索しています。

private String[] getAudioPath(String songTitle) {

    final Cursor mCursor = getContentResolver().query(
            MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
            new String[] { MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.DATA },
            MediaStore.Audio.Media.TITLE+ "=?",
            new String[] {songTitle},
            "LOWER(" + MediaStore.Audio.Media.TITLE + ") ASC");

    int count = mCursor.getCount();

    String[] songs = new String[count];
    String[] mAudioPath = new String[count];
    int i = 0;
    if (mCursor.moveToFirst()) {
            do {
            songs[i] = mCursor.getString(mCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
            mAudioPath[i] = mCursor.getString(mCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
            i++;
        } while (mCursor.moveToNext());
    }

    mCursor.close();
    return mAudioPath;
}

ただし、これを変更して、SD カードだけでなくデバイス全体を検索するだけでなく、曲のファイル名を検索するのではなく、「Let It Be」というタイトルの曲を検索する必要があります。

getContentResolver().query() を微調整して、デバイス全体を検索し、曲のタイトル メタデータを検索しようとしましたが、あまり成功しませんでした。これは可能ですか?

ありがとうございました!

4

2 に答える 2

-1

「songTitle」は検索する曲名の文字列です。例: mysong.mp3。

于 2015-03-05T03:07:55.457 に答える