gpt4 book ai didi

android - 如何获取专辑和艺术家信息。我想知道这段代码有什么作用?

转载 作者:行者123 更新时间:2023-11-30 03:27:19 24 4
gpt4 key购买 nike

有人可以逐行向我解释一下吗?我不想在不了解我实际在做什么的情况下只复制粘贴内容

Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id);
ContentResolver res = context.getContentResolver();
InputStream in = res.openInputStream(uri);
Bitmap artwork = BitmapFactory.decodeStream(in);

我正在尝试在下面的代码中使用上面的代码来获取音乐艺术家和专辑等......................................

............................................................................................................

public ArrayList<SongDetails> getSongsFromDirectory(File f)
{MediaMetadataRetriever mmr = new MediaMetadataRetriever();
ArrayList<SongDetails> songs = new ArrayList<SongDetails>();
if (!f.exists() || !f.isDirectory())

{
return songs;
}
File[] files = f.listFiles(new Mp3Filter());
for(int i=0; i<files.length; i++)
{
Uri uri = Uri.fromFile(files[i]);
//mmr.setDataSource(null, uri);

if (files[i].isFile()){
SongDetails detail=new SongDetails();
detail.setIcon(R.drawable.ic_launcher);

detail.setSong(files[i].getName());
//detail.setArtist(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST));
//detail.setAlbum(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM));
songs.add(detail);
}else if (files[i].isDirectory()){
songs.addAll(getSongsFromDirectory(files[i]));
}

}

return songs;



} }

最佳答案

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

这一行将“创建一个解析给定编码 URI 字符串的 Uri”。 (来自 http://developer.android.com/reference/android/net/Uri.html )URI 是一个统一的资源标识符,它是 Web 资源的唯一标识符。

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

ContentUris 是一个“实用方法,可用于处理使用“内容”(content://) 方案的 Uri 对象。” ( http://developer.android.com/reference/android/content/ContentUris.html ) with appender ID 将 album_id 附加到传入的 URI 的末尾。本质上,您正在创建一个新的 URI 以直接指向相册。

ContentResolver res = context.getContentResolver();

提供对内容模型的访问(http://developer.android.com/reference/android/content/ContentResolver.html)

InputStream in = res.openInputStream(uri);

这使您可以通过 InputStream 访问 URI 中的内容。 InputStreams 允许您读入数据。 http://developer.android.com/reference/java/io/InputStream.html

 Bitmap artwork = BitmapFactory.decodeStream(in);

最后,此方法将从输入流中加载 URI 处的图像。因此,您现在可以在内存中使用该图像。

关于android - 如何获取专辑和艺术家信息。我想知道这段代码有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18036614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com