扫描歌曲

/**
 * 扫描歌曲
 */
public static void scanMusic(Context context, List<Music> musicList) {
    musicList.clear();
    Cursor cursor = context.getContentResolver().query(
            MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,
            MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
    if (cursor == null) {
        return;
    }
    while (cursor.moveToNext()) {
        // 是否为音乐
        int isMusic = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.IS_MUSIC));
        if (isMusic == 0) {
            continue;
        }
        long id = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
        // 标题
        String title = cursor.getString((cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)));
        // 艺术家
        String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
        // 专辑
        String album = cursor.getString((cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)));
        // 持续时间
        long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
        // 音乐uri
        String uri = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
        // 专辑封面id,根据该id可以获得专辑图片uri
        long albumId = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
        String coverUri = getCoverUri(context, albumId);
        // 音乐文件名
        String fileName = cursor.getString((cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)));
        // 音乐文件大小
        long fileSize = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
        // 发行时间
        String year = cursor.getString((cursor.getColumnIndex(MediaStore.Audio.Media.YEAR)));
        Music music = new Music();
        music.set...
        musicList.add(music);
    }
    cursor.close();
}

/**
 * 查询专辑封面图片uri
 */
private static String getCoverUri(Context context, long albumId) {
    String uri = null;
    Cursor cursor = context.getContentResolver().query(
            Uri.parse("content://media/external/audio/albums/" + albumId),
            new String[]{"album_art"}, null, null, null);
    if (cursor != null) {
        cursor.moveToNext();
        uri = cursor.getString(0);
        cursor.close();
    }
    CoverLoader.getInstance().loadThumbnail(uri);
    return uri;
}
时间: 2024-08-11 09:25:49

扫描歌曲的相关文章

欢迎进入MyKTV前后台点歌系统展示

一个项目,一分收获:一个项目,一些资源.Ktv项目也是一样的,所以我想分享我的收获,让你们获得你需要的资源. 一. 那MyKTV点歌系统具体的功能有哪些呢?我们就来看看吧! 1.MyKTV前台功能: 01.歌星点歌 .拼音点歌 .数字点歌 .类型选择 .金榜排行 02.切歌 .点歌 .重唱和退出 2.MyKTV后台功能: 01.歌手管理 .歌曲管理 .设置资源路径 02.新增歌手.歌曲 ,查询歌手.歌曲信息,设置歌曲路径和退出 二. 功能已经概括的差不多了,就让我们一起来看看MyKTV的项目吧

音乐播放器乐乐(结束)源代码+说明

说明: 1. 第一次执行app,app将在存储卡中的文件夹中创建 haplayer/mp3 和haplayer/ksc 文件夹等.,然后projectassets 在两个文件中.他们被安置在存储卡 haplayer[app执行自己主动创造后]相应的文件夹下,扫描歌曲,那首歌词,点击播放,就能够显示歌词了.眼下歌词文件一定要放到ksc文件夹以下且和歌词的文件名称要一样.才干够搜索到歌词. 2.主界面 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWFr

MyKTV项目总结

项目名称:KTV点歌系统 --指导老师原玉明 经过一周多的时间,终于完成的我的这个KTV项目,说实话,做这个项目我收获了不少,难点也非常多,不过经过重重磨难,总算是过来了.不简单呀! 这个项目主要分为前后台. 前台主要实现的功能是:歌星点歌,拼音点歌,字数点歌, 类型选择,金曲排行,一些切歌,重唱,已点歌曲列表,主要是这些功能. 后台主要实现的功能是:增加歌手,增加歌曲,修改歌曲路径,修改歌手图片路径. 首先先看前台: 前台核心类: SqlHelper类(负责连接数据库): //连接字符串 pu

MyKTV前后台点歌管理系统

前台管理 主界面: 主要代码: 1 2 private void MainForm_Load(object sender, EventArgs e) 3 { 4 // 加载时,运行播放窗体 5 FrmPlay playForm = new FrmPlay(); 6 playForm.Show(); 7 8 // 启动定时器 9 this.timer1.Start(); 10 11 // 读取资源路径 12 DBHelper dbHelper = new DBHelper(); 13 string

乐乐音乐播放器(终)源代码+使用说明

使用说明: 1. 先执行app,app会在内存卡创建文件夹 haplayer/mp3 和haplayer/ksc 等文件夹.然后将projectassets 里两个文件,分别放到内存卡里 haplayer[app执行后会自己主动创建]相应的文件文件夹下,扫描歌曲,并找到那首歌词,点击播放,就能够显示歌词了. 眼下歌词文件一定要放到ksc文件夹以下且和歌词的文件名称要一样.才干够搜索到歌词. 2.主界面 主界面简单不多说. 3.主界面底部操作界面 右滑动.显示歌词 4.主界面播放列表 waterm

千万级下载量产品深度体验&mdash;手机音乐客户端

VINCENT MK http://www.cnblogs.com/mkvin/ QQ:350510376 引言 手机音乐客户端是每个手机用户几乎都高频率使用的一个产品,从功能机时代到智能机时代都一直如此.听音乐似乎是人们的天性,伴随音乐的响起,在各种复杂的生理因素的作用下,音乐可以带给人幸福和满足感. 一款好的音乐客户端产品,必须要满足用户查找歌曲.听歌曲这两个基本的诉求. 目前的音乐客户端都一定会有本地和在线听音乐的功能,当然在线音乐功能需要产品提供海量的曲库和优秀的音频来源,这是吸引用户使

Java音乐播放器-乐乐音乐(PC版)

乐乐音乐目前是基于musique开发的一个java音乐播放器,之前开发了一个android版本的音乐播放器,现在把android版本的代码移植过来PC版本这里.不过遇到了一个难题,就是java如果要播放mp3等歌曲,要安装jmf,我觉得安装这jmf真是太麻烦了,电脑是64位的伤不起啊.于是我从网上搜了一下,搜到了不少的开源播放器,如: (1)YOYOPlayer,感觉 YOYOPlayer整体上都不错,我的歌词也参考了一下它的实现,不过它在播放的时候,有一个问题,就是快进的时候,拖动条上显示的时

MyKTV系统,哎呦,不错哦

转眼之间,已经到了2016年,即新的一年了!S1也结束了,收获的也不多 ,想想最后留给大家的就一个KTV项目了.                                                      前台管理 主界面的运行效果: 主要代码: 1 2 private void MainForm_Load(object sender, EventArgs e) 3 { 4 // 加载时,运行播放窗体 5 FrmPlay playForm = new FrmPlay(); 6 pl

乐乐音乐播放器(终)源码+使用说明

使用说明: 1. 先运行app,app会在内存卡创建目录 haplayer/mp3 和haplayer/ksc 等文件夹,然后将工程assets 里两个文件,分别放到内存卡里 haplayer[app运行后会自动创建]对应的文件目录下,扫描歌曲,并找到那首歌词,点击播放,就可以显示歌词了.目前歌词文件一定要放到ksc目录下面且和歌词的文件名要一样,才可以搜索到歌词. 2.主界面 主界面简单不多说. 3.主界面底部操作界面 右滑动,显示歌词 4.主界面播放列表 5.主界面,拖动进度条,显示当前时间