Android 获取系统中歌曲信息,如歌曲名,歌手名等
通过查询数据库方法获取系统中是否有歌曲以及歌曲信息,如歌曲名,专辑名,歌手名称,歌曲文件大小。
上代码,对应字段对应信息。
public class AudioSongUtil {public static ArrayList<Song> getAllSongs(Context context) {Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,new String[]{MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DISPLAY_NAME,MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.DURATION,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media.ALBUM,MediaStore.Audio.Media.YEAR,MediaStore.Audio.Media.MIME_TYPE,MediaStore.Audio.Media.SIZE,MediaStore.Audio.Media.DATA},MediaStore.Audio.Media.MIME_TYPE + "=? or "+ MediaStore.Audio.Media.MIME_TYPE + "=?",new String[]{"audio/mpeg", "audio/x-ms-wma"}, null);ArrayList<Song> songs = new ArrayList<>();if (cursor != null && cursor.moveToFirst()) {Song song;do {song = new Song();// 文件名song.setFileName(cursor.getString(1));// 歌曲名song.setTitle(cursor.getString(2));// 时长song.setDuration(cursor.getInt(3));// 歌手名song.setSinger(cursor.getString(4));// 专辑名song.setAlbum(cursor.getString(5));// 年代if (cursor.getString(6) != null) {song.setYear(cursor.getString(6));} else {song.setYear("未知");}// 歌曲格式if ("audio/mpeg".equals(cursor.getString(7).trim())) {song.setType("mp3");} else if ("audio/x-ms-wma".equals(cursor.getString(7).trim())) {song.setType("wma");}// 文件大小if (cursor.getString(8) != null) {float size = cursor.getInt(8) / 1024f / 1024f;song.setSize((size + "").substring(0, 4) + "M");} else {song.setSize("未知");}// 文件路径if (cursor.getString(3) != null) {song.setFileUrl(cursor.getString(3));}songs.add(song);} while (cursor.moveToNext());cursor.close();}return songs;}
下面是歌曲实体类:
public class Song {private String fileName;private String title;private int duration;private String singer;private String album;private String year;private String type;private String size;private String fileUrl;public String getFileName() {return fileName;}public void setFileName(String fileName) {this.fileName = fileName;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public int getDuration() {return duration;}public void setDuration(int duration) {this.duration = duration;}public String getSinger() {return singer;}public void setSinger(String singer) {this.singer = singer;}public String getAlbum() {return album;}public void setAlbum(String album) {this.album = album;}public String getYear() {return year;}public void setYear(String year) {this.year = year;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getSize() {return size;}public void setSize(String size) {this.size = size;}public String getFileUrl() {return fileUrl;}public void setFileUrl(String fileUrl) {this.fileUrl = fileUrl;}public Song() {super();}public Song(String fileName, String title, int duration, String singer,String album, String year, String type, String size, String fileUrl) {super();this.fileName = fileName;this.title = title;this.duration = duration;this.singer = singer;this.album = album;this.year = year;this.type = type;this.size = size;this.fileUrl = fileUrl;}@Overridepublic String toString() {return "Song [fileName=" + fileName + ", title=" + title+ ", duration=" + duration + ", singer=" + singer + ", album="+ album + ", year=" + year + ", type=" + type + ", size="+ size + ", fileUrl=" + fileUrl + "]";}
}
开发中用到,记录下来,希望对大家有用。
注:该方法只有数据库有变化时,数据才会有变化
Android 获取系统中歌曲信息,如歌曲名,歌手名等相关推荐
- Android获取系统的硬件信息、系统版本以及如何检测ROM类型
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52438706 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
- R语言sys方法:sys.info函数获取系统和用户信息、sys.localeConv函数获取当前区域中的数字和货币表示的详细信息、sys.setFileTime函数更改文件的时间
R语言sys方法:sys.info函数获取系统和用户信息.sys.localeConv函数获取当前区域中的数字和货币表示的详细信息.sys.setFileTime函数更改文件的时间 目录
- Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册
一.获取手机中的值 1.首先在使用读写sd卡权限 2.获取手机中的所有图片: 注意代码中的getGalleryPhotos(getContentResolver()) 方法获取所有地址 获取所有图片地 ...
- android获取进程内存使用信息、一键加速(内存清理)与进程重要级别解析
android获取进程内存使用信息.一键加速(内存清理)与进程重要级别解析 获取进程内存使用信息 获取单个或多个进程 获取系统内存状态的信息 MemoryInfo说明 内存清理 killBackgro ...
- C/C++通过WMI和系统API函数获取获取系统硬件配置信息(转)
前段时间由于项目需要,要求做一个服务器的实时性能监控(CPU.内存.网络利用率等)和读取服务器的硬件配置参数的接口供项目组使用,就是一个类似于鲁大师之类的东东吧... 当然第一想法肯定是利用Windo ...
- windows编程点滴(一)之Windows获取系统中所有进程
Tool help function PSAPI functions (PROCECC STATUS) 1.结构体PROCESSENTRY32 typedef struct tagPROCES ...
- 获取系统中已经安装的文字输入法
//获取系统中已经安装的文字输入法InputLanguageCollection MyInputs = InputLanguage.InstalledInputLanguages;//获取当前输入法信 ...
- linux 查看usb日志,Linux中显示系统中USB信息的lsusb命令
Linux中显示系统中USB信息的lsusb命令 通用串行总线(USB)被设计成为连接计算机外设的标准,如键盘.鼠标.打印机.数码相机.便携式媒体播放器.磁盘和网络适配器等等 - 来源:Wikiped ...
- IOS获取系统通讯录联系人信息
2019独角兽企业重金招聘Python工程师标准>>> IOS获取系统通讯录联系人信息 一.权限注册 随着apple对用户隐私的越来越重视,IOS系统的权限设置也更加严格,在获取系统 ...
最新文章
- Windows 8 应用开发 - 本地数据存储
- [安卓基础] 006.打开另一个Activity
- esp8266 lcd 天气_8266WIFI加LCD显示时间及天气pm25
- 文巾解题 1. 两数之和
- 【整理】ABAP 7.40新特性介绍(下)
- 三个实例演示 Java Thread Dump 日志分析
- 《文献管理与信息分析》课程学习笔记
- Palo Alto Networks全球化安全堡垒理念 提升企业防御能力
- python文本内容怎么转换成字典_怎么把照片上的文字转换成文本?照片转换文字神器来了...
- 面试精讲之面试考点及大厂真题 - 分布式专栏 17 ElasticSearch解决大数据量检索难题
- Iperf 源代码分析(四)
- Python Flask 微信验证
- 我国计算机把计算机分为巨型,把计算机分为巨型机大中型机按照什么分的
- Postman接口自动化测试之— 请求参数进行MD5/SHA256摘要计算
- python爬虫,g-mark网站图片数据爬取及补坑
- 一个小需求引发的思考
- 网络协议(十四):WebSocket、WebService、RESTful、IPv6、网络爬虫、HTTP缓存
- J2EE是什么?和JavaEE的是什么关系?
- Workspaces for Mac(高效率文件管理软件)
- linux系统Centos7重置root密码
热门文章
- git如何同步本地仓库与远程仓库代码
- php缓存输出压缩,PHP缓冲机制:缓冲控制,压缩http响应数据,缓冲 PHP输出
- JAVA实现通过绑定邮箱找回密码功能
- JAVA 小型点餐系统 文章中含有源码
- 《计算机视觉》集大网课学习笔记【5】
- FileBeat系列:multiline的pattern negate match使用方法
- 程序员的梗_程序员的这些梗!你都知道吗?
- 小米手机离一坨屎的距离
- 在下列选项中不属于python特点的是_在下列选项中,不属于 Python特点的是( )。_学小易找答案...
- 搭配Online:特朗普:俄罗斯及沙特将大幅减产,沙特、俄罗斯:你在无中生有