如何解决Android Media Session API - 如何将 url 设置为 METADATA_KEY_ALBUM_ART 字段
在 android 媒体会话 api 中,可以使用媒体会话元数据中的键 MediaMetadata.MetaDATA_KEY_ALBUM_ART_URI 设置图像。根据文档,它接受该值作为 Uri 格式的字符串
/**
* The artwork for the album of the media's original source as a Uri
* formatted String. The artwork can be loaded using a combination of
* {@link ContentResolver#openInputStream} and
* {@link BitmapFactory#decodeStream}.
* <p>
* For the best results,Uris should use the content:// style and support
* {@link ContentResolver#EXTRA_SIZE} for retrieving scaled artwork through
* {@link ContentResolver#openTypedAssetFileDescriptor(Uri,String,Bundle)}.
*/
public static final String MetaDATA_KEY_ALBUM_ART_URI = "android.media.Metadata.ALBUM_ART_URI";
设置值
MediaMetadata.Builder()
.putString(MediaMetadata.MetaDATA_KEY_TITLE,it.name)
.putString(MediaMetadata.MetaDATA_KEY_ARTIST,it.artist)
.putString(MediaMetadata.MetaDATA_KEY_ALBUM_ART_URI,...)
.build()
那么如何使用 URL 或位图对象来设置这个值,而不是参考本地存储。
有没有一种方法可以从在线资源加载此图像,而无需将其存储在应用程序存储中?
解决方法
我们可以使用 METADATA_KEY_ALBUM_ART 值代替 METADATA_KEY_ALBUM_ART_URI 将位图对象设置为 Media session API 中的 MediaMetadata 并将其用于显示目的 在媒体会话通知中。
MediaMetadata.Builder()
...
.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART,getBitmapFromURL(url))
private fun getBitmapFromURL(url : String):Bitmap{
// Download image as a bitmap using a library like Glide,Picasso etc.
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。