获取嵌入的 mp3 文件嵌入艺术失败

2023-11-25

我正在尝试获取 MP3 文件的专辑封面。我认为最好、最干净的方法是使用 MediaMetadataRetriever 类。但由于某种原因,调用 getEmbeddedPicture 方法不起作用。图像未显示,LogCat 显示错误:

04-29 18:36:19.520: E/MediaMetadataRetrieverJNI(25661): getEmbeddedPicture: Call to getEmbeddedPicture failed.

这是似乎不起作用的代码:

    @Override
    protected Void doInBackground(Void... params) {
        // TODO Auto-generated method stub
        MediaMetadataRetriever mmdr = new MediaMetadataRetriever();
        mmdr.setDataSource(path); //path of the MP3 file on SD Card
        bites = mmdr.getEmbeddedPicture();
        if(bites != null)
        artBM = BitmapFactory.decodeByteArray(bites, 0, bites.length);
        return null;
    }

我在 Android 4.2 的设备上运行它,因此 MediaMetadataRetriever(需要 api lvl 10)不应该有任何问题。我测试的文件在 Windows 资源管理器中显示图像,因此似乎嵌入了艺术。有人对此有什么想法吗?


并非所有 MP3 文件都嵌入了专辑封面,对于某些专辑,专辑封面位于专辑文件夹内,因此您可以看到该文件夹​​内所有文件的专辑封面,

But

MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(mp3_file_path); 

如果专辑封面嵌入在该文件中,这将获取专辑封面,因此为未嵌入专辑封面的文件设置默认图像作为专辑封面,并检查返回的 byte[] 是否为空,

如果 byte[] 不为空,则检索专辑封面,如果为空,则设置默认专辑封面图像

在我的项目中我使用这个

    MediaMetadataRetriever mmr = new MediaMetadataRetriever();
    mmr.setDataSource(songsList.get(index).get("songPath"));
    byte[] artBytes =  mmr.getEmbeddedPicture();
    if(artBytes != null)
    {
        InputStream is = new ByteArrayInputStream(mmr.getEmbeddedPicture());
        Bitmap bm = BitmapFactory.decodeStream(is);
        imgArt.setImageBitmap(bm);
    }
    else
    {
        imgArt.setImageDrawable(getResources().getDrawable(R.drawable.adele));
    }

我希望这能帮到您

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取嵌入的 mp3 文件嵌入艺术失败 的相关文章

  • 如何从游标类中检索数据

    我需要知道如何从游标检索数据 我需要这个 因为铃声管理器以光标对象的形式返回所有音频文件 我需要知道如何检索这些值 Anbudan 获得 Cursor 对象后 您可以执行以下操作 if cursor moveToFirst do Strin
  • 如何让Android设备始终处于唤醒模式?

    设备root成功后 现在 我需要使设备始终处于唤醒状态 即始终可见 UI 并且没有黑屏或任何白日梦屏幕 为此 我认为我必须完成以下任务 无锁屏 已关闭 睡眠设置为 从不 白日梦设置为 关闭 我发现都是关于应用程序层的 即有一些应用程序可以完
  • 无法解析配置“:app:_debugCompile”的所有依赖项

    我正在尝试在我的 Android 应用程序上使用 Google 地图 我安装了 Google Play 服务并获取了 API 密钥 我不明白为什么我会收到此错误消息 我认为它抱怨以下内容
  • Android - 打开 FB 本机应用程序时未找到处理 Intent 的 Activity

    我正在尝试从通知中收到的网址打开特定帖子上的 FB 应用程序 它在大多数设备上都能完美运行 但在三星 S7 上大多会崩溃 我的简单代码 String url fb post
  • 在android中使用短信管理器发送批量短信

    我正在使用以下方式向近 90 100 个号码发送短信SmsManager 我正在从文件中读取数字并将数字传递给 sendtextmessage 函数 如下所示 String nos this array contains mobile no
  • 没有这样的属性:类的variantConfiguration:

    升级 gradle 4 0 0 应用程序构建失败后 出现错误消息 没有这样的属性 类的variantConfiguration com android build gradle internal variant ApplicationVar
  • 上传图片不显示,但其他图片显示

    我遇到了一些奇怪的事情 我可以看到我正在上传的图像link http www justedhak comlu com images uploaded images jpg但它没有显示在应用程序中 但如果我输入另一张图片link http a
  • 获取 ArrayIndexOutOfBoundsException 异常 [重复]

    这个问题在这里已经有答案了 这几天得到ArrayIndexOutOfBoundsException https docs oracle com javase 7 docs api java lang ArrayIndexOutOfBound
  • Android Studio 找不到 com.android.support:support-v4:19.1.0

    我已将一个项目导入Android Studio但我收到错误 找不到 com android support support v4 19 1 0 我在哪里可以找到这个文件 我已经使用导入了项目Gradle 我有Android Studio v
  • 大型 XML 的 XML 节点到字符串转换

    到目前为止我一直在使用DOM源在我的 Android 应用程序中将 XML 文件转换为字符串 这是我的代码 public String convertElementToString Node element throws Transform
  • Android imageview 改变色调来模拟按钮点击

    我有一个图像视图 我在其中设置了从网址获取的位图 在 imageview 上 我设置了一个 onClickListener 来打开一个对话框 当按下图像视图时 我想以某种方式改变色调 使其更暗 以提供一种类似按钮点击的感觉 你有什么建议 h
  • Android 中的 FFMpeg jni?

    我已经构建了 Bambuser http bambuser com opensource 提供的 FFMPEG 可执行文件和库 所以我设法构建了 Android 可执行文件和库 如何在 Eclipse 项目中链接这些库并从 Java 调用
  • 如何在开头时解析 json 文件

    我想解析以下 JSON 文件 但以 向我表明这是一个数组 然后继续 对象 我当前的解析器返回一个 JSON 对象 我的问题是 如何修改解析器来解析这个文件 这样解析器将为我提供其他 JSON 文件 从对象或排列开始 JSON 文件 codi
  • gradle 复制为 doLast 不起作用

    我正在尝试做一件非常简单的事情 由于 gradle 在清理时会删除构建目录中的所有文件 因此我想在创建发布版本时将 apk 移至其他位置 所以我在链中添加了一个复制任务 并将其设置为最后一个 我尝试过的任何方法都不起作用 所以我简化了它并添
  • Android:UiTesting 时运行时错误

    我正在尝试运行 Ui 测试 每次运行应用程序时 它都会在控制台中出现以下错误并关闭正在运行的应用程序 我导入了 uiautomator jar android jar 和 JUnit4 库 我正在使用 Eclipse 我在这里缺少什么 20
  • ListView 上的 setOnItemClickListener 不会触发

    我获取 SD 卡的文件列表 并将其显示在 listView 中 就像在自定义适配器的帮助下一样 adapter new ArrayAdapter
  • Android - 框架布局高度与协调器布局不匹配

    我的 FrameLayout 抽屉布局中的容器 有问题 FrameLayout的高度超过了屏幕高度 在底部的android默认菜单按钮下方
  • 在React Native中在Android真实设备上运行应用程序时console.log输出在哪里

    我目前正在做一个项目 在那个项目中 我正在打印控制台日志但没有消息在任何地方打印 我在用npm 和 React native cli在真正的 Android 设备上运行 Thanks 如果您使用模拟器 可以按 Cmd M Android 或
  • 如何获取 Android 应用程序的 Google Places API 密钥

    在过去的 48 小时里 我绞尽脑汁试图找到这个问题的答案 问这个问题的人 如何为 Google Places api 制作 API KEY https stackoverflow com questions 23128152 how can
  • 获取Android联系人排序首选项

    在 Android 的 联系人 gt 设置 中 我们有 列表排序依据 和 查看联系人姓名 选项 有什么方法可以在另一个应用程序中获取这些首选项吗 这意味着我的应用程序有我自己版本的联系人列表 我需要这些才能对其进行相应的排序 int sor

随机推荐

  • 惰性变量定义后括号做什么?

    我正在分析一些第三方代码 有一个看起来像这样的 惰性 var 语句 我想了解 计算属性 大括号后面的括号在做什么 lazy var defaults NSUserDefaults return standardUserDefaults re
  • asp.net mvc 和 css:使菜单选项卡在选择时保持突出显示

    有一个更好的方法吗 我有一个 HTML 帮助器扩展方法 它检查当前选项卡菜单是否是选定的菜单 然后选择 selected css 类 我将 html IsSelected 链接放在每个 li 中 li class 其中 a 是选项卡名称 b
  • 批量 C# 数据表到 postgresql 表

    我有一个包含数千条记录的数据表 我有一个与数据表具有相同字段的 postgres 表 我想每天截断该表并再次填充数据表的数据 我见过sql批量复制 但它在postgres上不可用 那么 哪一种方法是最有效的呢 每条记录一次插入 多次插入 插
  • 结构类型嵌入字段访问

    我在尝试学习golang目前我正在尝试理解指针 我定义了三种结构类型 type Engine struct power int type Tires struct number int type Cars struct Engine Tir
  • stdout 在 docker 容器中缓冲

    我不完全确定这里发生了什么 但当我在容器中运行代码时 stdout 似乎正在被缓冲 但如果我在主机或 OSX 上运行它 则不会 https github com myles mcdonnell procwrap blob master pr
  • 如何在 clojure 中创建可执行文件?

    我一直在使用 Clojure Box 在 REPL 环境中学习 clojure 如何制作可执行文件 jar 我想知道这样的事情是否可能 在记事本上编写 clojure 代码并将其命名为project clj 编译项目 clj 获取可执行文件
  • 如何创建 Gmail API 消息

    我想使用 Google 的 Gmail API 发送消息 我已成功通过身份验证 并尝试使用 GmailService 发送消息 我想用这个 myService Users Messages Send myMessage me Execute
  • iPhone:如何获取当前毫秒数?

    获取当前系统时间毫秒的最佳方法是什么 如果您正在考虑将其用于相对计时 例如游戏或动画 我宁愿使用CA当前媒体时间 double CurrentTime CACurrentMediaTime 这是推荐的方式 NSDate从网络同步时钟获取 并
  • Angular 5 延迟加载错误:找不到模块

    我想使用延迟加载 但我不明白为什么它不起作用 它给了我错误 找不到模块 这是我的环境 角度 5 2 1 NET核心2 网页包 3 10 0 角度路由器加载器 0 8 2 角度 cli 1 6 5我在 loadChildren 中尝试了不同的
  • 如何从 Pdf、Word 和 Excel 文档中提取文本? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我需要一个 NET 库 以便使用它从 PDF Excel 和 Word 文件中提取文本数据 最好是免费工具 你会推荐一些吗 非常感谢 作为花了很多天
  • 使用 __add__ 自定义类以添加 NumPy 数组

    我有一个自定义类实现 add 和 radd 作为 import numpy class Foo object def init self val self val val def add self other print add print
  • GC 代表们,我错过了什么? (我的代表没有被收集)

    我有一个类保留一个代表 以便稍后懒惰地评估某些内容 一旦我评估了它 通过调用委托 我清除了对委托的引用 希望它符合收集条件 毕竟 如果它被构造为匿名方法 它可能会保留大量局部变量 我尝试构建一个单元测试来验证这一点 但它似乎并没有按照我计划
  • Mercurial 缺少版本日志

    我在使用 Mercurial 通过 TortoiseHg 时收到 缺少转速日志 错误 有人知道如何修复这个仓库吗 hg repository C Source Project verify verbose repository uses r
  • Windows BAT:测试特定文件是否为空

    我想检查 Windows bat 文件中的特定文件是否为空 这是我的非工作脚本 set dir C test set file dir fff txt cd dir if file zi 0 exit ftp s dir ftp actio
  • 如何将 Pandas Dataframe 写入 HDF5 数据集

    我正在尝试将 Pandas 数据帧中的数据写入嵌套的 hdf5 文件中 每个组内有多个组和数据集 我想将其保留为单个文件 该文件将来每天都会增长 我尝试了以下代码 它显示了我想要实现的目标的结构 import h5py import num
  • 在Python中读取csv文件时获取“字符串内的换行符”?

    我在 Django Architecture 中有这个 utils py 文件 def range data ip r f open os path join settings PROJECT ROOT static csv GeoIPCo
  • 在 Objective C 中声明、属性、综合和实现 int[] 数组

    如何在 Objective C 中声明 设置属性 合成和实现大小为 5 的 int 数组 我正在为 iPhone 应用程序编写这段代码 谢谢 我认为 Cocoa y 要做的就是隐藏 int 数组 即使您在内部使用它也是如此 就像是 inte
  • 从mysql表读取utf-8内容[重复]

    这个问题在这里已经有答案了 我有一个 mysql 表 其中包含内容 结构在这里 我想读取该表的内容并将其打印为html 这是我的代码
  • Python:重新查找最长序列

    我有一个随机生成的字符串 polymer str diol diNCO diamine diNCO diamine diNCO diamine diNCO diol diNCO diamine 我想找到最长的 diNCO 二醇 序列和最长的
  • 获取嵌入的 mp3 文件嵌入艺术失败

    我正在尝试获取 MP3 文件的专辑封面 我认为最好 最干净的方法是使用 MediaMetadataRetriever 类 但由于某种原因 调用 getEmbeddedPicture 方法不起作用 图像未显示 LogCat 显示错误 04 2