android开发音乐播放器--Genres和Art album的获取
最近在做一个项目,其中涉及到音乐播放器。当用到Genres和Art album时花费了一些时间才搞定,今天把方法草草列出,以供自己以后忘记时查看,也希望可以帮助碰到同样问题的道友!!
一、Genres的获取
先获取audioId(这个都知道吧,就不再多说了)
public String getGenres(long audioId){
Uri uri = Uri.parse("content://media/external/audio/media/" + audioId+ "/genres");
Cursor c = mContentResolver.query(uri, new String[]{Android.provider.MediaStore.Audio.GenresColumns.NAME}, null, null, null);
if(c.moveToFirst()){
String genre = c.getString(c.getColumnIndex(GenresColumns.NAME));
c.close();
return genre;
}
return null;
}
二、Art album的获取
Art album的获取方法有两种:
方法一:获取albumId//每个专辑的Id ,返回值是专辑封面图片的路径
private String getAlbumArt(int albumid) {
String strAlbums = "content://media/external/audio/albums";
String[] projection = new String[] {android.provider.MediaStore.Audio.AlbumColumns.ALBUM_ART };
Cursor cur = this.getContentResolver().query(
Uri.parse(strAlbums + "/" + Integer.toString(albumid)),
projection, null, null, null);
String strPath = null;
if (cur.getCount() > 0 && cur.getColumnCount() > 0) {
cur.moveToNext();
strPath = cur.getString(0);
}
cur.close();
cur = null;
return strPath;
}
方法二:获取audioId //注意此时获取的是每首歌曲的Id 返回值为专辑封面图片的Bitmap
public Bitmap getArtAlbum(long audioId){
String str = "content://media/external/audio/media/" + audioId+ "/albumart";
Uri uri = Uri.parse(str);
ParcelFileDescriptor pfd = null;
try {
pfd = this.getContentResolver().openFileDescriptor(uri, "r");
} catch (FileNotFoundException e) {
return null;
}
Bitmap bm;
if (pfd != null) {
FileDescriptor fd = pfd.getFileDescriptor();
bm = BitmapFactory.decodeFileDescriptor(fd);
return bm;
}
return null;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2015-12-23 swift锁屏播放,音乐进度更新,专辑,歌手名显示
2015-12-23 swift Dictionary 字典
2015-12-23 Swift中的集合类型
2015-12-23 Swift String 一些常用方法
2015-12-23 Swift自定义Class实现Hashable
2014-12-23 Java注释@interface的用法
2013-12-23 Java 完美判断中文字符的方法