求助:自己写的安卓音乐播放器在模拟器里能显示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里的突然。我感觉可能是图片读取方式之类的手机和模拟器不一样,或者格式啥的不对,具体原因我也不太清楚。希望高手能帮我解答下。
...全文
1010 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;
                 }
内容概要:本文提出了一种基于记忆机制、进化算子和局部搜索策略的改进灰狼优化算法,并结合线性种群规模缩减策略以提升算法收敛速度与全局搜索能力。该算法通过引入记忆模块保存优质个体信息,利用进化算子增强种群多样性,同时采用局部搜索机制提高寻优精度,有效克服了传统灰狼算法易陷入局部最优、收敛速度慢等问题。文中详细阐述了算法的设计思路、实现步骤及关键参数设置,并提供了完整的Matlab代码实现,便于读者复现与应用。实验部分验证了改进算法在多个标准测试函数上的优越性能,展示了其在优化问题中的潜力。; 适合人群:具备一定智能优化算法基础,熟悉Matlab编程,从事科研或工【改进灰狼算法】基于记忆、进化算子和局部搜索的改进灰狼优化算法及线性种群规模缩减算法(Matlab代码实现)程优化相关工作的研究生、科研人员及技术人员; 使用场景及目标:①解决复杂优化问题如函数优化、参数调优、工程设计优化等;②学习灰狼算法的改进思路与实现方法,掌握智能算法的性能提升策略; 阅读建议:建议结合Matlab代码逐行理解算法实现过程,重点关注记忆机制、进化操作与局部搜索的融合方式,并通过实验对比分析改进策略的有效性。

80,475

社区成员

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

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