zoukankan      html  css  js  c++  java
  • 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;
        }

  • 相关阅读:
    mount 需要同时设置 noatime 和 nodiratime 吗?
    xfsdump命令使用
    查看linux设备文件系统类型的方法
    Elasticstack 5.1.2 集群日志系统部署及实践
    Kickstart无人值守安装[转载]
    mytop安装,使用mytop监控MySQL性能
    使用Anemometer分析MySQL慢查询记录
    (总结)Web性能压力测试工具之WebBench详解
    mysqlsla快速入门
    Linux下MySQL慢查询分析mysqlsla安装使用
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/6215476.html
Copyright © 2011-2022 走看看