android通过MP3路径获取MP3的album
来源:互联网 发布:momentum in ear 知乎 编辑:程序博客网 时间:2024/05/24 06:55
多媒体的信息都保存在数据库中,我们可以通过MediaStore类来进行操作
具体的MediaStore可以查看资料:http://blog.csdn.net/vrix/archive/2010/08/04/5788955.aspx。
由于开始的时候是传文件路径到Activity的,在网上也没有找到通过文件的路径来获取MP3的album。
其实思路也简单的,因为数据库中也保存有文件的路径,因此呢我用文件的路径去查找数据,匹配则返回cursor。此时cursor指向当前的MP3文件。因此呢,我们就可以获取MP3的基本信息了。我原本是想直接获取album可是一直出错,只好绕开,在这里我获取album_id,然后再通过album_id查找album_art,最后通过album_art得到album。
如下:
1.通过MP3路径得到指向当前MP3的Cursor
- /**
- * 通过MP3路径得到指向当前MP3的Cursor
- *
- * @param filePath
- * MP3路径
- *
- * @return Cursor 返回的Cursor指向当前MP3
- */
- private Cursor getCursorfromPath(String filePath) {
- String path = null;
- Cursor c = getContentResolver().query(
- MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,
- MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
- // System.out.println(c.getString(c.getColumnIndex("_data")));
- if (c.moveToFirst()) {
- do {
- // 通过Cursor 获取路径,如果路径相同则break;
- path = c.getString(c
- .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
- // 查找到相同的路径则返回,此时cursorPosition 便是指向路径所指向的Cursor 便可以返回了
- if (path.equals(filePath)) {
- // System.out.println("audioPath = " + path);
- // System.out.println("filePath = " + filePath);
- // cursorPosition = c.getPosition();
- break;
- }
- } while (c.moveToNext());
- }
- // 这两个没有什么作用,调试的时候用
- // String audioPath = c.getString(c
- // .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
- //
- // System.out.println("audioPath = " + audioPath);
- return c;
- }
2.获取album_id
- int album_id = currentCursor.getInt(currentCursor
- .getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID))
3.通过album_id查找 album_art
- /**
- *
- * 功能 通过album_id查找 album_art 如果找不到返回null
- *
- * @param album_id
- * @return album_art
- */
- private String getAlbumArt(int album_id) {
- String mUriAlbums = "content://media/external/audio/albums";
- String[] projection = new String[] { "album_art" };
- Cursor cur = this.getContentResolver().query(
- Uri.parse(mUriAlbums + "/" + Integer.toString(album_id)),
- projection, null, null, null);
- String album_art = null;
- if (cur.getCount() > 0 && cur.getColumnCount() > 0) {
- cur.moveToNext();
- album_art = cur.getString(0);
- }
- cur.close();
- cur = null;
- return album_art;
- }
4.使用
- Bitmap bm = null;
- String albumArt = getAlbumArt(album_id);
- if (albumArt == null) {
- albumImage.setBackgroundResource(R.drawable.audio_default_bg);
- } else {
- bm = BitmapFactory.decodeFile(albumArt);
- BitmapDrawable bmpDraw = new BitmapDrawable(bm);
- albumImage.setImageDrawable(bmpDraw);
- }
到这里就可以完成了。
转自:http://blog.csdn.net/piaozhiye/article/details/6286665
0 0
- android通过MP3路径获取MP3的album
- android通过MP3路径获取MP3的album .
- android通过MP3路径获取MP3的album
- android的MP3信息获取
- android获取MP3文件的歌曲信息
- 通过MP3获取专辑背景图片(Bitmap)
- 获取本地MP3的封面
- java获取mp3的时长和播放mp3文件
- MP3
- mp3................
- mp3
- mp3
- mp3
- mp3
- MP3
- mp3
- mp3
- mp3
- const修饰函数参数 const修饰函数返回值 const修饰成员函数
- 开方数
- Python开发进阶——数据集处理与机器学习初步
- HttpServletResponse状态码对照表
- HeshSet
- android通过MP3路径获取MP3的album
- poj 1410 Intersection
- android之启动桌面activity
- Linux 下使用杀毒软件clamav扫描木马病毒
- 使用go build 进行条件编译
- 2015_3G新浪微博模拟登陆
- Eclipse web工程创建步骤及两种部署方法
- const常量引用的使用方法
- HDU 1722 Cake (GCD)