从sd卡获取歌曲标题,以显示在android> 2.3或4.0中

时间:2012-06-16 18:58:15

标签: android

我可以显示从本地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));

注意歌曲标题的不同之处:

Screenshot one Screenshot one

1 个答案:

答案 0 :(得分: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));

我无法重新创建您描述的内容,并且没有太多信息可以使用,希望这有效。