如何创建 mp3 文件的缩略图

Posted

技术标签:

【中文标题】如何创建 mp3 文件的缩略图【英文标题】:How to Create a Thumbnail of mp3 file 【发布时间】:2020-09-26 06:22:16 【问题描述】:

嘿,最近我在做音乐播放器项目,我主要涵盖了一些东西,但我不知道如何创建 mp3 文件缩略图。我试过了

  final int THUMBSIZE = 64 ;
  File file= new File(songpathll);
  Bitmap bitmap = ThumbnailUtils.createAudioThumbnail(file, new Size(100,100),null);

这是显示错误

  java.lang.NoSuchMethodError: No static method createAudioThumbnail(Ljava/io/File;Landroid/util/Size;Landroid/os/CancellationSignal;)Landroid/graphics/Bitmap; in class Landroid/media/ThumbnailUtils; or its super classes (declaration of 'android.media.ThumbnailUtils' appears in /system/framework/framework.jar)

【问题讨论】:

createAudioThumbnail 已添加到 API 级别 29(即 Android 10)中。您项目的目标 SDK 级别是多少? 28 没关系。 “没关系”是什么意思?如果目标 SDK 级别为 28,则不能使用 API 29 方法。 我也尝试了低于 api 级别 29 的方法,这也给出了同样的错误 如果您想将艺术​​作品添加到 MP3 文件中,我们最好查看developer.android.com/reference/android/media/… 【参考方案1】:

我会检查您在项目中所针对的 Android 版本。

在 API v29 中添加了 createAudioThumbnail() 的覆盖。 Check here for the documentation。

如果您的目标是较低的 API 版本,您可能需要执行以下操作:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) 
    ThumbnailUtils.createAudioThumbnail(file, Size(THUMBSIZE, THUMBSIZE), null)
 else 
    // Use the deprecated version for older devices.
    ThumbnailUtils.createAudioThumbnail(filepath, MediaStore.Images.Thumbnails.MINI_KIND)

【讨论】:

我已将我的最低 sdk 版本设置为 22,这样就不会发生错误,我的目标级别是 28。通常没问题。 好的,所以对于您的用例,您可以使用这个版本的 createAudioThumbnail:developer.android.com/reference/android/media/… 根据文档,both 覆盖了在 29 中添加的位置(并且在 29 中也弃用了一个,这很奇怪)。 这很有趣。我想知道最合适的事情是否就是使用ThumbnailUtils.extractThumbnail 函数。 我会尝试 ThumbnailUtils.extractThumbnail 并在它有效时更新您

以上是关于如何创建 mp3 文件的缩略图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 eyed3 python 模块为 mp3 设置缩略图?

如何创建从Android视频文件路径视频缩略图

如何创建 .BMP 文件的缩略图?

如何统一创建缩略图

使用 Python 从视频文件创建缩略图

如何使用 glide 从 android 中的音频 url 获取缩略图