求助:自己写的安卓音乐播放器在模拟器里能显示mp3内嵌封面,在手机里却什么都不显示。

Thare_Lam 2013-05-24 02:34:13
设置封面代码:
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里的突然。我感觉可能是图片读取方式之类的手机和模拟器不一样,或者格式啥的不对,具体原因我也不太清楚。希望高手能帮我解答下。
...全文
974 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Thare_Lam 2013-05-28
  • 打赏
  • 举报
回复
引用 4 楼 f839903061 的回复:
你调试一下,在手机里运行应用程序,获取的图片什么的是空吗,因为有些手机存储位置和模拟器不一样!并不是同一的 /mnt/sdcard/ /mnt/extsd/ 这两种情况都有可能
我是通过cursor访问内存卡数据库(媒体信息都保存在这里)然后设置的,现在还是这样,也就算了,东西也做完了,就结了吧
Thare_Lam 2013-05-24
  • 打赏
  • 举报
回复
木有人吗~ 来帮帮忙~
雨焰 2013-05-24
  • 打赏
  • 举报
回复
你调试一下,在手机里运行应用程序,获取的图片什么的是空吗,因为有些手机存储位置和模拟器不一样!并不是同一的 /mnt/sdcard/ /mnt/extsd/ 这两种情况都有可能
Thare_Lam 2013-05-24
  • 打赏
  • 举报
回复
我分别从能显示封面和不能显示封面的两首歌里提取出了他们的专辑图片,发现都是jpg格式的,也就是说应该和图片格式无关。唉,现在这个问题好困惑啊,求大神帮忙解决下
Thare_Lam 2013-05-24
  • 打赏
  • 举报
回复
修改了下代码,有点好了。现在的问题是有些歌曲的专辑封面能显示,有些不能显示。下面贴出获取专辑封面的方法 如果获取异常或者为空就设置为默认图片,大家帮忙看看哪里有问题。

//获取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;
                 }

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧