展开全部

该图片为使用如下代码解e5a48de588b662616964757a686964616f31333339666135析得到:

参考源码中,音乐目录:

packages/apps/Music/src/com/android/music/MusicUtils.java中函数:getArtwork(context, song_id, album_id, true)

public static Bitmap getArtwork(Context context, long song_id, long album_id,

boolean allowdefault) {

if (album_id < 0) {

// This is something that is not in the database, so get the album art directly

// from the file.

if (song_id >= 0) {

Bitmap bm = getArtworkFromFile(context, song_id, -1);

if (bm != null) {

return bm;

}

}

if (allowdefault) {

return getDefaultArtwork(context);

}

return null;

}

ContentResolver res = context.getContentResolver();

Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id);

if (uri != null) {

InputStream in = null;

try {

in = res.openInputStream(uri);

return BitmapFactory.decodeStream(in, null, sBitmapOptions);

} catch (FileNotFoundException ex) {

// The album art thumbnail does not actually exist. Maybe the user deleted it, or

// maybe it never existed to begin with.

Bitmap bm = getArtworkFromFile(context, song_id, album_id);

if (bm != null) {

if (bm.getConfig() == null) {

bm = bm.copy(Bitmap.Config.RGB_565, false);

if (bm == null && allowdefault) {

return getDefaultArtwork(context);

}

}

} else if (allowdefault) {

bm = getDefaultArtwork(context);

}

return bm;

} finally {

try {

if (in != null) {

in.close();

}

} catch (IOException ex) {

}

}

}

return null;

}

private static Bitmap getArtworkFromFile(Context context, long songid, long albumid) {

Bitmap bm = null;

byte [] art = null;

String path = null;

if (albumid < 0 && songid < 0) {

throw new IllegalArgumentException("Must specify an album or a song id");

}

try {

if (albumid < 0) {

Uri uri = Uri.parse("content://media/external/audio/media/" + songid + "/albumart");

ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "r");

if (pfd != null) {

FileDescriptor fd = pfd.getFileDescriptor();

bm = BitmapFactory.decodeFileDescriptor(fd);

}

} else {

Uri uri = ContentUris.withAppendedId(sArtworkUri, albumid);

ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "r");

if (pfd != null) {

FileDescriptor fd = pfd.getFileDescriptor();

bm = BitmapFactory.decodeFileDescriptor(fd);

}

}

} catch (FileNotFoundException ex) {

}

if (bm != null) {

mCachedBit = bm;

}

return bm;

}

private static Bitmap getDefaultArtwork(Context context) {

BitmapFactory.Options opts = new BitmapFactory.Options();

opts.inPreferredConfig = Bitmap.Config.RGB_565;

return BitmapFactory.decodeStream(

context.getResources().openRawResource(R.drawable.play_img_default), null, opts);

}

private static final Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");

private static final BitmapFactory.Options sBitmapOptions = new BitmapFactory.Options();

private static Bitmap mCachedBit = null;

获取cursor:

myCur = getContentResolver().query(

MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,

new String[] { MediaStore.Audio.Media.TITLE,

MediaStore.Audio.Media.DURATION,

MediaStore.Audio.Media.ARTIST,

MediaStore.Audio.Media._ID,

MediaStore.Audio.Media.ALBUM,

MediaStore.Audio.Media.DISPLAY_NAME,

MediaStore.Audio.Media.DATA,

MediaStore.Audio.Media.ALBUM_ID}, null,null, null);

myCur.moveToPosition(position);

设置专辑封面图片:

long songid = myCur.getLong(3);

long albumid = myCur.getLong(7);

Bitmap bm = MusicUtils.getArtwork(this, songid, albumid,true);

if(bm != null){

Log.d(TAG,"bm is not null==========================");

playImg.setImageBitmap(bm);

}else{

Log.d(TAG,"bm is null============================");

}

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java 获取mp3 封面_android 怎样获取歌曲的专辑封面相关推荐

  1. java获取MP3文件信息(歌手,歌名,封面,专辑,时长)

    可以用本地的文件地址测试(令url=文件地址) package com.test.inside.util;import org.jaudiotagger.audio.AudioFileIO; impo ...

  2. java mp3 信息_Java代码获取Mp3音乐的歌名、歌手、专辑名等信息

    这里介绍的是使用Jaudiotagger库获取Mp3音频文件的歌名.歌手.专辑名等信息.使用的jaudiotagger-2.2.6-SNAPSHOT.jar包下载地址:Download. 实现代码如下 ...

  3. 在桌面上显示当前的ip地址_如何在桌面上显示当前播放的歌曲的专辑封面

    在桌面上显示当前的ip地址 Album art used to be an inseparable part of music, back when it came in record or CD f ...

  4. java 获取mp3 封面_java如何获取.mp3格式文件内置歌曲封面

    展开全部 封面就是图片,62616964757a686964616fe59b9ee7ad9431333337616466用java的类抓取图片即可package tool; import java.a ...

  5. java手机电池充电代码_Android中获取电池电量实例代码

    /** * * @author chrp * *显示当前电池电量 */ public class MainActivity extends Activity { private TextView tv ...

  6. java 获取手机系统_Android系统信息获取

    Build.BOARD // 主板 Build.BRAND // 系统定制商 Build.SUPPORTED_ABIS //CPU指令集 Build.DEVICE // 设备参数 Build.DISP ...

  7. android获取imei兼容_Android如何获取双卡手机IMEI的方法示例

    前言: 项目中有个统计付费广告转化率的需求,需要获取用户手机的IMEI.但是网上最常见的方法有坑,也就是TelephonyManager.getDeviceId(),这方法有可能获取的是MEID或者空 ...

  8. android获取imei兼容_Android中获取IMEI码的方法

    公共请求头 所有HTTP请求中,都包含如下公共请求头(HTTP Header): 名称 类型 是否必需 描述 Accept String 是 接受的返回类型,目前只支持JSON:application ...

  9. android获取网络时区_android 网络获取当前时区

    [转]Android配置文件权限一览表 转自:http://blog.csdn.net/kbest/article/details/7495154访问登记属性 android.permission.A ...

最新文章

  1. nagios 使用MSN 发报警消息
  2. 报名 | 面向智慧城市的人本尺度城市形态:理论、方法与实践讲座
  3. matlab 向量去除空格,MATLAB向量
  4. 开学考试学生成绩管理Java
  5. Android 开源框架Universal-Image-Loader学习
  6. PHP经常使用正則表達式汇总
  7. linux 让暂停的进程恢复,Linux 下进程的挂起和恢复命令
  8. SpringBoot Logback配置,SpringBoot日志配置
  9. 网易云音乐缓存转换至mp3(Python实现)
  10. python 百度翻译官方api和破解版方法
  11. 程序员双十一都该买点啥?
  12. 计算机控制系统信号恢复之零阶保持器
  13. vue嵌入app中——首次加载慢的动画
  14. CST微波工作室 简单微带天线复现(内附模型)
  15. Windows11 系统打开IE浏览器的方式(完整版)
  16. 阿里云服务器白嫖和购买教程——学生向
  17. 深度学习1:二分类问题
  18. Jmeter使用及压测
  19. 【计蒜客】等边三角形
  20. c# datagirdview报dataerror请处理等等

热门文章

  1. maya阿诺德渲染失败_maya2018无法加载ARNOLD渲染器?maya2018中ARNOLD渲染器加载不了怎么办?...
  2. 子弹散射——Unity随手记(2021.2.4)
  3. 最火的python视频_超火Python400集视频,116-248集思维导图视频介绍(第二季)
  4. 3步释放工作和生活压力
  5. VSTO Ribbons的完整介绍
  6. WebDAV将会在公共领域取代FTP
  7. STM32利用定时器实现微妙延时
  8. 布隆过滤器原理和基于BloomFilter的误判率展示
  9. 车载服务器系统,车载系统平台与终端产品的介绍
  10. sdoi2009 [动态规划 状态压缩DP] 学校食堂