1

ローカル SD カードから取得した曲のタイルを表示できます。問題は、自分の曲リストとデフォルトの音楽プレーヤーを表示すると、余分な文字列がある場合に曲名がトリミングされていることがわかりました (文字列はサードパーティのサイトである可能性があります)。または映画名.)どうすればそれを達成できますか.?

    tempCursor = ((Activity)context).managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,MediaStore.Audio.Media.DISPLAY_NAME);

            tempCursor.moveToFirst();
            ArrayList<Song> list = new ArrayList<Song>();
            for (int i = 0; i < tempCursor.getCount(); i++) {

                id = temp    Cursor.getString(tempCursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
                artist = temp    Cursor.getString(tempCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
                name = temp    Cursor.getString(tempCursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
                data = temp    Cursor.getString(tempCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
                albumName = temp    Cursor.getString(tempCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
                albumId = temp    Cursor.getString(tempCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));

曲のタイトルの違いに注目してください。

スクリーンショット 1 スクリーンショット 1

4

1 に答える 1

0

リライト

問題が発生したスクリーンショットをありがとう。これを変更するだけです。

name = tempCursor.getString(tempCursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));

これに:

name = tempCursor.getString(tempCursor.getColumnIndex(MediaStore.Audio.Media.TITLE));

コメントからの追加

タイトルのない曲を確認できないので、これを提供します。

name = tempCursor.getString(tempCursor.getColumnIndex(MediaStore.MediaColumns.TITLE));
if(name.isEmpty())
    name = tempCursor.getString(tempCursor.getColumnIndex(MediaStore.EXTRA_MEDIA_TITLE));
if(name.isEmpty())
    name = tempCursor.getString(tempCursor.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME));

私はあなたが説明したものを再現することができず、作業するための情報があまりありません.これがうまくいくことを願っています.

于 2012-06-16T19:05:26.033 に答える