设置封面代码:
try{
MainActivity.img_songcover.setImageDrawable(getpic(s));
PlayerMag.f_drawable=getpic(s);
}catch(Exception e){
MainActivity.img_songcover.setImageResource(R.raw.songcover);
PlayerMag.f_drawable=null;
}
if(getpic(s)==null){
MainActivity.img_songcover.setImageResource(R.raw.songcover);
PlayerMag.f_drawable=null;
}
模拟器运行情况:(不知道什么愿意,传不了图片,不过我描述的应该挺清楚的)
如果读取专辑图片异常或者为空就显示raw里面的图片。扫描的是相同的歌曲,在模拟器能正常显示出来,而且没有专辑的歌曲显示的是raw里的图片。在手机里却显示不出来,显示的是空白,没有专辑封面的能正常显示raw里的突然。我感觉可能是图片读取方式之类的手机和模拟器不一样,或者格式啥的不对,具体原因我也不太清楚。希望高手能帮我解答下。Androidandroid播放器MP3专辑封面模拟器和手机

解决方案 »

  1.   

    修改了下代码,有点好了。现在的问题是有些歌曲的专辑封面能显示,有些不能显示。下面贴出获取专辑封面的方法
      如果获取异常或者为空就设置为默认图片,大家帮忙看看哪里有问题。//获取album_art
             private  String getAlbumArt(int album_id) {  
                 String mUriAlbums = "content://media/external/audio/albums";  
                 String[] projection = new String[] { "album_art" };  
                 Cursor cur = 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;  
             } 
            //获取专辑封面
             public Bitmap getpic(String file){
                     Cursor c =getCursorfromPath(file);  
                     int album_id = c.getInt(c.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID)) ; 
                    Bitmap bm = null;  
                     String albumArt = getAlbumArt(album_id);    
                if (albumArt == null) {  
                         bm=null; 
                }else {  
                     bm = BitmapFactory.decodeFile(albumArt);    
                        }  
                 return bm;  
             }
     
    设置专辑封面
     try{
                             MainActivity.img_songcover.setImageBitmap(getpic(s));
                             PlayerMag.f_drawable=getpic(s);
                     }catch(Exception e){
                             MainActivity.img_songcover.setImageResource(R.raw.songcover);
                             PlayerMag.f_drawable=null;
                     }
                     if(getpic(s)==null){
                             MainActivity.img_songcover.setImageResource(R.raw.songcover);
                             PlayerMag.f_drawable=null;
                     }
      

  2.   

    我分别从能显示封面和不能显示封面的两首歌里提取出了他们的专辑图片,发现都是jpg格式的,也就是说应该和图片格式无关。唉,现在这个问题好困惑啊,求大神帮忙解决下
      

  3.   

    你调试一下,在手机里运行应用程序,获取的图片什么的是空吗,因为有些手机存储位置和模拟器不一样!并不是同一的/mnt/sdcard/
    /mnt/extsd/这两种情况都有可能
      

  4.   

     我是通过cursor访问内存卡数据库(媒体信息都保存在这里)然后设置的,现在还是这样,也就算了,东西也做完了,就结了吧