android mp3文件图片,android 完美获取音乐文件中的专辑图片并显示

其实实现音乐中的专辑图像提取是相当的容易的,网上大多的资料都是比较扯淡的,其实就几行代码而已。

看下面代码之前,我们所要做的工作是通过mediaplayer已经获取到了音乐文件中的诸多信息:

MediaStore.Audio.Media.TITLE,// 标题

MediaStore.Audio.Media.DURATION,// 持续时间

MediaStore.Audio.Media.ARTIST,// 艺术家

MediaStore.Audio.Media._ID,// id

MediaStore.Audio.Media.DISPLAY_NAME,// 显示名称

MediaStore.Audio.Media.DATA,// 数据

MediaStore.Audio.Media.ALBUM_ID,// 专辑名称ID

MediaStore.Audio.Media.ALBUM,// 专辑

MediaStore.Audio.Media.SIZE }, null, null, MediaStore.Audio.Media.ARTIST);// 大小,

其中我们需要的是MediaStore.Audio.Media.ALBUM_ID(即一下代码中的int id)

private void getImage(int id)

{

int album_id = id;

String albumArt = getAlbumArt(album_id);

Bitmap bm = null;

if (albumArt == null)

{

mImageView.setBackgroundResource(R.drawable.noalbum);

}

else

{

bm = BitmapFactory.decodeFile(albumArt);

BitmapDrawable bmpDraw = new BitmapDrawable(bm);

((ImageView) mImageView).setImageDrawable(bmpDraw);

}

}

private String getAlbumArt(int album_id) {   String mUriAlbums = "content://media/external/audio/albums";   String[] projection = new String[] { "album_art" };   Cursor cur = this.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;  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android ,我们可以通过将音乐文件放在 SD 卡来实现音乐播放器读取这些文件。具体步骤如下: 1.连接 Android 设备到电脑上,将音乐文件复制到 SD 卡。 2.在 Android Studio 创建一个新项目,并在 AndroidManifest.xml 文件添加以下代码,以获取 SD 卡读写权限: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ``` 3.在 MainActivity.java 文件,添加以下代码,以获取 SD 卡的路径: ```java String path = Environment.getExternalStorageDirectory().getPath(); ``` 4.在获取到路径之后,就可以读取 SD 卡音乐文件了。可以使用以下代码来获取所有 mp3 文件: ```java ArrayList<File> songs = new ArrayList<>(); File[] files = new File(path).listFiles(); for (File currentFile : files) { if (currentFile.getName().endsWith(".mp3")) { songs.add(currentFile); } } ``` 5.将获取到的音乐文件路径传递给 MediaPlayer 实例,即可实现音乐播放。 ```java MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(songs.get(0).getPath()); mediaPlayer.prepare(); mediaPlayer.start(); ``` 以上是将音乐文件放在 SD 卡的基本步骤。需要注意的是,如果在 Android 6.0 及以上版本,还需要动态获取 SD 卡读写权限。可以使用以下代码: ```java if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE); } ``` 其,`MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE` 为自定义的请求码,需要在 `onRequestPermissionsResult` 进行处理。 希望以上内容对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值