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));

注意歌曲名称的不同:

截图一 截图一

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 回答