关于安卓开发从SD卡中读取音乐的信息的问题 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

关于安卓开发从SD卡中读取音乐的信息的问题

2016-03-20 08:21:03 1984 1

这是我写的获取信息得方法

 public List<Mp3Info> getMp3Infos(String c){
        Cursor cursor = null;
        if(c.equals("songs")){//songs list
            cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                    null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
        }
        else if(c.equals("artists")){//artists list
            cursor = getContentResolver().query(MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI,
                    null, null, null, MediaStore.Audio.Artists.DEFAULT_SORT_ORDER);
        }
        else if(c.equals("albums")){//albums list
            cursor = getContentResolver().query(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
                    null, null, null, MediaStore.Audio.Albums.DEFAULT_SORT_ORDER);
        }
        else if(c.equals("playlist")){//play list
            cursor = getContentResolver().query(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
                    null, null, null, MediaStore.Audio.Playlists.DEFAULT_SORT_ORDER);
        }
        List<Mp3Info> mp3Infos = new ArrayList<Mp3Info>();
        int i;
        for(i = 0, cursor.moveToFirst(); i < cursor.getCount(); ++i){
            Mp3Info mp3info = new Mp3Info();
            String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
            String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
            String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
            long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
            int isMusic = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.IS_MUSIC));
            if(isMusic != 0){
                mp3info.title = title;
                mp3info.album = album;
                mp3info.artist = artist;
                mp3info.duration = duration;
                mp3Infos.add(mp3info);
            }
            cursor.moveToNext();
        }
        return mp3Infos;
    }

使用cursor的时候不需要循环吧?
但是我SD卡中有2个音频文件,却只显示一条信息。

取消 提交回答
全部回答(1)
  • 爵霸
    2019-07-17 19:08:29

    把那个循环改为这个呢?
    `
    cursor.movetofirst()
    while(cursor.moveToNext()){
    //你的操作
    }
    `
    我感觉是你那里的循环有点问题,但又不确定,你可以在循环里面打印个信息在logcat里面查看一下,看看它循环了几次~

    0 0
相关问答

8

回答

短视频SDK如何做到视频原始比例裁剪?

樰篱 2017-09-13 17:35:01 39465浏览量 回答数 8

323

回答

云伴侣数据导入问题汇总(Android系统)

os_admin 2011-07-26 17:52:15 63132浏览量 回答数 323

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 147266浏览量 回答数 22

15

回答

OSS学院:为什么我的图片会被下载?怎么在线播放影音?

leehon 2013-09-13 16:40:00 35287浏览量 回答数 15

1

回答

2020年了,跨平台开发框架现在怎样了?

问问小秘 2020-04-15 13:23:24 35194浏览量 回答数 1

26

回答

安卓与iOS百问,开发者系统指南

yq传送门 2017-05-31 17:16:00 33521浏览量 回答数 26

25

回答

数据库百问,教你快速上手数据库

yq传送门 2017-06-13 08:01:34 38652浏览量 回答数 25

8

回答

mail.aliyun.com邮箱android手机客户端设置方法

jack_yang 2013-04-24 09:01:34 122590浏览量 回答数 8

3

回答

JAVA web 【精品问答合集】

我是管理员 2018-07-13 16:02:35 28028浏览量 回答数 3

46

回答

H5技术百问——不懂H5你就OUT啦

yq传送门 2017-09-09 11:03:04 47440浏览量 回答数 46
+关注
2
文章
9426
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载