Java 壁画获得嵌入式封面艺术

Java 壁画获得嵌入式封面艺术,java,android,image,pipeline,fresco,Java,Android,Image,Pipeline,Fresco,Androidfresco图像加载库提供了多种组件,用于自定义来自多个源的图像加载。在我的情况下,我希望检索音频/mp3文件的嵌入式封面艺术(而不是可以使用uri访问的相册艺术)。这可以通过使用或类似的自定义库来实现 问题是,API总是需要路径并返回字节数组。这使得它很难集成到基于流的壁画管道中 理想情况下,我希望实现类似的方法。Aka是一个非常低级的函数,它获取字节并将它们简单地包装在一个流中。好吧,我们可以使用定制,但不能使用生产商。数据已在解码器阶段加载。我不知道这应该发生在哪一层,如果可

Androidfresco图像加载库提供了多种组件,用于自定义来自多个源的图像加载。在我的情况下,我希望检索音频/mp3文件的嵌入式封面艺术(而不是可以使用uri访问的相册艺术)。这可以通过使用或类似的自定义库来实现

问题是,API总是需要路径并返回字节数组。这使得它很难集成到基于流的壁画管道中

理想情况下,我希望实现类似的方法。Aka是一个非常低级的函数,它获取字节并将它们简单地包装在一个流中。好吧,我们可以使用定制,但不能使用生产商。数据已在解码器阶段加载。我不知道这应该发生在哪一层,如果可能的话

参考滑翔代码:

@Override public InputStream loadData(Priority priority) throws Exception {
    MediaMetadataRetriever retriever = new MediaMetadataRetriever();
    try {
        retriever.setDataSource(model.path);
        byte[] picture = retriever.getEmbeddedPicture();
        if (picture != null) {
            return new ByteArrayInputStream(picture);
        } else {
            return fallback(model.path);
        }
    } finally {
        retriever.release();
    }
}
结果将加载到SimpleDraweView中。或者,我愿意接受任何解决方案,该解决方案允许我使用fresco将嵌入式封面艺术异步加载到SimpleDraweView中。

我已经使用该解决方案,它能够提取音频文件的嵌入式图片,类似于所提供片段中的Glide解决方案。此LocalAudioThumbnailProducer适用于具有
audio/
MimeType的内容。我还写了一篇小文章来展示它的用法

请注意,这将当前的最低SDK版本从9提高到10