微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android Media Session API - 如何将 url 设置为 METADATA_KEY_ALBUM_ART 字段

如何解决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 举报,一经查实,本站将立刻删除。