获取本地音乐文件的专辑,图片,音乐信息
今天跟大家分享一下如何获取本地音乐文件中的各种音乐信息,包括音乐的歌名,歌手,曲长,专辑,专辑图片
private String tilte;//歌名 private String artist;//歌手 private Bitmap bitmap;//专辑海报 private long duration;//时长 private String path_music;//当前播放的歌曲路径
ContentResolver musicResolver = getContentResolver(); Cursor cursor = null;
cursor = musicResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, MediaStore.Audio.Media.DATA + "= ? ", new String[]{path_music}, null); if (cursor != null && cursor.getCount() > 0) {cursor.moveToFirst(); long ID = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID)); //音乐id tilte = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE)); artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)); // 艺术家 String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)); //专辑 duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)); // 时长 long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE)); String url = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); long albumId = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID)); bitmap = getMusicBitemp(getApplicationContext(), ID, albumId);
下面还有getMusicBitmap方法
private static final Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart"); public static Bitmap getMusicBitemp(Context context, long songid, long albumid) {Bitmap bm = null; // 专辑id和歌曲id小于0说明没有专辑、歌曲,并抛出异常 if (albumid < 0 && songid < 0) {throw new IllegalArgumentException("Must specify an album or a song id"); }try {if (albumid < 0) {Uri uri = Uri.parse("content://media/external/audio/media/" + songid + "/albumart"); ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "r"); if (pfd != null) {FileDescriptor fd = pfd.getFileDescriptor(); bm = BitmapFactory.decodeFileDescriptor(fd); }} else {Uri uri = ContentUris.withAppendedId(sArtworkUri, albumid); ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "r"); if (pfd != null) {FileDescriptor fd = pfd.getFileDescriptor(); bm = BitmapFactory.decodeFileDescriptor(fd); } else {return null; }}} catch (FileNotFoundException ex) {} //如果获取的bitmap为空,则返回一个默认的bitmap if (bm == null) {Resources resources = context.getResources(); Drawable drawable = resources.getDrawable(R.drawable.back_iv); //Drawable 转 Bitmap BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable; bm = bitmapDrawable.getBitmap(); } return Bitmap.createScaledBitmap(bm, 150, 150, true); }
除去上面使用到的 还有
String year = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.YEAR));//获取发行年份
Int size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));//获取歌曲文件大小
等等。
获取本地音乐文件的专辑,图片,音乐信息相关推荐
- 用 Windows Media Player 在线匹配歌曲文件的专辑图片,音乐信息等并写入歌曲文件
如何用 Windows Media Player 在线匹配歌曲文件的专辑图片,音乐信息等并写入歌曲文件 相信大家都遇到过这样一个问题,自己下载的歌曲文件名和歌曲内部的信息(标题.艺术家.唱片集等)杂乱 ...
- vue获取本地php数据,Vue-cli项目获取本地json文件数据的实例
下面我就为大家分享一篇Vue-cli项目获取本地json文件数据的实例,具有很好的参考价值,希望对大家有所帮助. 在自己做的vue demo项目中,我想通过在本地添加一些json数据,写到json文件 ...
- 如何获取网络视频(或者说后台返回视频URL)第一帧图片以及获取本地视频的第一帧图片
在项目开发的时候,有可能会有这样的一种需求:有一段视频需要展示给用户,在界面上先展示视频上的某一帧图片,用户点击的时候再去获取视频资源进行播放.这时,服务器会先给我们返回视频的url,这个时候就需要通 ...
- 获取本地json文件
方法一:vue中获取本地json文件 //通过json文件路径引入 import jsonData from './***.json' //定义一个变量用于接收数据 data() {return {c ...
- 获取音乐文件中包含的一些信息,如封面图片,时长等(MusicUtils)
MusicUtils源码: import android.graphics.Bitmap import android.graphics.BitmapFactory import android.gr ...
- 获取本地 qt_用QT实现视频/音乐播放组件
前言 我已经有四五天没有发布文章了,趁着这个周末有空,就又开始构思我们自己的QT组件库中的新组件,思考还有哪些有用.有趣.值得研究学习并构建实现的组件,于是又有了两个新的目标,即多媒体播放组件和地图组 ...
- linux给音乐添加封面,利用ffmpeg读取音乐文件的专辑信息(包括专辑封面图片)
工作原理 读取metadata AVFormatContext 结构体中有一个属性是metadata,我们在读取一个多媒体文件的时候,可以通过AVDictionaryEntry访问这个属性的数据. A ...
- 利用ffmpeg读取音乐文件的专辑信息(包括专辑封面图片)
工作原理 读取metadata AVFormatContext 结构体中有一个属性是metadata,我们在读取一个多媒体文件的时候,可以通过AVDictionaryEntry访问这个属性的数据. A ...
- android 音乐播放器专辑图片旋转,Android实现网易云音乐的旋转专辑View
本文实例为大家分享了Android实现网易云音乐的旋转专辑View,供大家参考,具体内容如下 一.前言 最近做过 类似网易云音乐专辑唱片的效果,这里记录下开发思路,仅供参考.但需求不完全与网易云音乐一 ...
最新文章
- android 有效载荷大图,避OOM
- 反应机理_过敏反应的发生机理及表现
- 菜鸟学Linux 第090篇笔记 corosync+drbd+mysql
- MySQL具体解释(21)------------缓存參数优化
- MyBatis 缓存详解-缓存体系结构
- 旅途人物之二:幸福的孩子们
- python selenium_自动化测试:Selenium+Python环境搭建
- matlab里vpa怎么用_“学校里的师兄师姐,用英文怎么说?”
- 客户引导你,还是你引导客户?
- STM32F429HAL库UART学习笔记
- systemtap的一些总结
- Atitit refact art 重构的艺术 目录 1. Concept	1 1.1. Bp	1 2. Prob	2 3. Tool	2 1.Concept 	1. legacy code遗留代
- C++中volatile的作用
- http禁用缓存、文件下载
- TextView scrollbars setting
- OS学习笔记-18(清华大学慕课)信号量
- 【Web技术】1064- 前端9种图片格式基础知识, 你应该知道的
- 加州欧文大学计算机申请,美国加州大学欧文分校信息与计算机科学专业申请条件.pdf...
- Android模仿youtube的拖拽视频效果
- 自定义alert和confirm的效果,个人感觉蛮好使用的