如何在Android中获取MP3文件的持续时间[重复]

2023-12-21

我正在开发一个媒体播放器项目,我想根据我正在播放的 MP3 文件的长度旋转图像,即当歌曲结束时图像应该停止旋转。 我想获取所选 MP3 文件的持续时间,以便可以对旋转进行计时。

我读了这个问题在 Android 中从 MP3 文件获取 PCM 数据 https://stackoverflow.com/questions/9167501/get-pcm-data-from-mp3-file-in-android但我不知道如何读取歌曲的持续时间。我该如何做到这一点 - 是否有任何函数或方法可以获取文件的持续时间?


这是 Kotlin 版本

            var metaRetriever:MediaMetadataRetriever = MediaMetadataRetriever()
            metaRetriever.setDataSource(filePath)

            var out:String = ""
            var txtTime:String = ""

            var duration:String = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)

            Log.d("DURATION VALUE", duration)

            var dur:Long = duration.toLong()
            var seconds:String = ((dur % 60000)/1000).toString()

            Log.d("SECONDS VALUE", seconds)

            var minutes:String = (dur / 60000).toString()
            out = minutes + ":" + seconds

            if (seconds.length == 1){
                txtTime = "0" + minutes + ":0" + seconds
            }
            else {
                txtTime = "0" + minutes + ":" + seconds
            }

            Log.d("MINUTES VALUE", minutes)

            Log.d("FORMATTED TIME", txtTime)

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

如何在Android中获取MP3文件的持续时间[重复] 的相关文章

  • Android 上有哪些字体可用? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道安卓有一个字体集合 http www ascenderfonts com store search
  • v7 RecyclerView NullPointerException AccessibilityDelegateCompat.getBridge()

    运行我的 recyclerview 列表片段时出现此错误 java lang NullPointerException Attempt to invoke virtual method java lang Object android su
  • 将正确的上下文传递给 greendao 的 OpenHelper 构造函数

    如果我理解正确的话 在使用数据库时 我必须执行以下操作 DaoMaster OpenHelper helper new DaoMaster OpenHelper this test db null Override public void
  • android webview 函数 onPagefinished 被调用两次

    我的android webview功能onPageFinished被调用两次 我不知道为什么 但它在 android 2 2 上运行良好 但当我将其升级到 4 时 它就不起作用了 代码附在下面 Code Override public vo
  • 毕加索动画加载图像

    我有以下代码在毕加索中加载图像 使用可绘制的占位符在图像下载时显示 不过 我想要的是一个动画旋转进度条样式的旋转器 它可以在图像加载时不断地旋转 就像我在大多数专业应用程序中看到的那样 毕加索似乎不支持这一点 只支持静态图像可绘制 有没有办
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 如何从一个代码库创建多个 Android 应用

    我有一个 Android 代码库 它使用带有设置的 API 来获取多个应用程序的不同数据 所有应用程序都使用相同的代码库 但进行一两个设计调整 那么如何重用主代码库而不必每次都复制整个 Android 项目呢 iPhone 在同一个项目中使
  • Android 应用被 Google Play 拒绝

    我最近向 Google Play 商店提交了一个 Android 应用程序 但收到一条消息说我的应用程序已被拒绝 我不确定问题是什么 也找不到确切的解决方案 拒绝原因 违反了禁止行为条款 内容政策 经过定期审核后 我们确定您的应用程序支持
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • Youtube 退出全屏模式 TextView 可见性问题

    我正在全屏模式下播放视频 当我单击后退按钮时 我可以退出全屏模式 但无法显示我在全屏情况下隐藏的 TextView 要在全屏模式下隐藏 textView 我使用以下代码 Override public void onInitializati
  • 应用内结算错误

    我的 UNMANAGED 应用内购买无法正常工作 在它完美运行之前 我可以使用测试帐户成功购买 但它突然不起作用了 因为我记得我对商家帐户所做的只是添加更多 2 4 个测试帐户 添加后 我的应用内购买将不起作用 所以我更新了公钥并上传了一个
  • 如何防止布局的方向改变,而不是整个屏幕/活动的方向改变

    我需要一个子布局 可以是任何布局 例如FrameLayout or RelativeLayout 忽略方向变化并始终保持横向 但不是它的父级或任何其他兄弟布局 视图 它们应该相应地改变它们的方向 因此 我不能使用setRequestedOr
  • 在 Jetpack Compose 中跨可组合函数重复使用一组预览注释

    在 Jetpack Compose 中迈出第一步 这非常令人惊奇 除了一个恼人的问题 我有一组固定的预览 正常 深色和 RTL Preview name Normal group Screen showBackground true Pre
  • 如何在 Android NDK 中创建新的 NativeWindow 而无需 Android 操作系统源代码?

    我想编译一个 Android OpenGL 控制台应用程序 您可以直接从控制台启动 Android x86 运行 或者从 Android x86 GUI 内的 Android 终端应用程序运行 这个帖子 如何在 Android NDK 中创
  • Android Studio IDE 上的“文本/设计”选项卡缺少新的 Android 项目

    如何在创建新项目期间自动创建的 Activity main xml 文件的 src main res layout 文件夹中启用文本 设计选项卡 如果我右键单击并在所述文件夹上创建 xml 文件 则设计 文本选项卡存在 有什么建议吗 谢谢
  • android httprequest java.net.UnknownHostException

    我想用android发出http请求 是使用这个 void testHTTP HttpClient httpClient new DefaultHttpClient HttpUriRequest request new HttpPost h
  • 按字母顺序过滤 Firestore 数据以对 Google Cloud 中的文档读取进行分类/减少

    基于这样的事实Cloud Firestore 不支持全文搜索 https firebase google com docs firestore solutions search到目前为止 我决定问这个question https stack
  • Android:解析 XML 数据的最佳解析器 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在开发一个应用程序 其中我第一次要解析来自远程服务器的 xml 文件中的数据 但我无法选择哪个解析器是有效的或最适合解析的 因为我知道主要有
  • 在 Android 中使用 iText 将图像添加到特定位置

    我想使用 Android 中的 iText 将图像添加到 PDF 文件中的特定位置 这是一个可填写的表单 我添加了作为图像占位符的文本框 我想要做的就是像这样获取该文本框和图像 public class FormFill public st
  • 当ScrollView滚动到底部时加载更多数据

    我有一个带有动态加载内容的滚动视图 有时可能会有很多内容 所以我想在用户滚动到底部时加载更多内容 我搜索了合适的方法 发现了两种 onScrollChanged and getScrollY 但我不知道如何将它用于我的目的 请给我一些建议

随机推荐

  • 遍历页面上的所有

    我想使用 Javascript 浏览页面上的所有元素 看看它们是否设置了属性 有没有一种简单的方法可以做到这一点 或者我是否必须使用递归解决方案 您可以使用 var divs document getElementsByTagName di
  • 在 Gmaps Api 中使用一个航点作为目的地

    我正在使用 gmaps Api 为必须访问市场列表 我的路径点 以记录其股票的人制定一条路线 我使用用户的房屋位置作为路线的起点 使用市场的位置作为我的路径点 问题是我不知道哪个航路点是路线的目的地 因为我设置了属性optimization
  • Sharepoint、计算列、IF 函数和日期

    我正在尝试添加一个计算列 我有一个日期列 其中包含安排会议的日期 在本专栏中 我需要一个代码 如果会议安排在第一季度 第二季度 第三季度或第四季度 则可以返回该代码 我有一个静态代码 如下所示 IF Date lt 40269 Q1 Q2
  • _spark_metadata 导致问题

    我将 Spark 与 Scala 一起使用 并且我有一个目录 其中有多个文件 在这个目录中 我有 Spark 生成的 Parquet 文件和 Spark Streaming 生成的其他文件 并且Spark Streaming生成一个目录 s
  • 如何让 Wintersmith 中的文章不在其自己的子目录中?

    在 Wintersmith 中 默认博客模板从 content articles index md 生成帖子 这很好 因为它允许将图像等关联文件包含在文章中 但实际上 大多数 博客文章 只是与模板关联的文本内容 必须创建子目录是一个小烦恼
  • iPhone,“尝试注册的过滤专辑列表超过最多 5 个。这将失败。”错误

    当我尝试从照片库中读取图像时 出现错误 尝试注册的过滤相册列表超过最多 5 个 这将失败 图像未读取 知道如何解决这个问题吗 我认为您没有检查源类型 你可能正在做 self sourceType UIImagePickerControlle
  • Unix Shell编程:打印时添加空行

    我试图列出目录中的所有文件 但是如何用空行分隔每个文件 基本上每个文件都用空行分隔显示 我正在尝试使用 for 循环 我确实尝试了几个例子 但没有一个真正通过在之间间隔空行来起作用 for i in ls do echo n ls l do
  • 在所有视图中创建 Telerik Sidedrawer

    我已经成功地让 Telerik Side drawer 在一个视图中工作 但我坚持将其制作成一个可以全局使用的组件 我想避免将其复制并粘贴到每个视图中 所以我的问题是如何将其变成可重用的组件 所以当你使用page router outlet
  • MySQL - 如果尚不存在则插入

    我想执行这个 MySQL 查询 INSERT INTO cron stats user VALUES int d by user 每当此类用户尚不存在时 如下所示 SELECT 1 FROM cron stats WHERE user in
  • git log 中带有 tformat 的额外换行符

    当我使用git log pretty oneline shortstat 我得到了我的日志的紧凑表示 git log pretty oneline shortstat 73c6eecd930c2f66d5c1e87fcca7ca9b0e35
  • 需要一些有关使用 PERL 的 IRC BOTS 的信息

    有谁知道有一款用 Perl 编写的好 irc 机器人吗 我只需要一个简单的登录到该频道 然后根据用户所说的内容进行回复 e g 用户
  • 只让实例访问标签本身?

    看着这个帖子 https serverfault com questions 686526 how do you tag and name the ec2 instance that was launched by an ec2 spot
  • AppStore iOS 应用新版本提交问题

    您好 提前致谢 在尝试使用应用程序加载器向 AppStore 提交新版本的 iOS 应用程序时 我收到了以下消息 ITC apps validation prerelease build missing 并停止提交 我在使用以前版本的 iT
  • GRPC:用Java/Scala制作高吞吐量客户端

    我有一项以相当高的速率传输消息的服务 目前它由 akka tcp 提供服务 每分钟生成 350 万条消息 我决定尝试一下 grpc 不幸的是 它导致吞吐量小得多 每分钟约 500k 条消息 甚至更少 您能推荐一下如何优化吗 My setup
  • 错误:我的 Prolog 代码中超出本地堆栈

    我无法弄清楚为什么给定 Prolog 代码的以下查询会生成错误Out of local stack 序言代码 likes g c likes c a likes c b likes b a likes b d likes X Z likes
  • PHP DOM UTF-8 问题

    首先 我的数据库使用 Windows 1250 作为本机字符集 我将数据输出为 UTF 8 我在我的网站上使用 iconv 函数将 Windows 1250 字符串转换为 UTF 8 字符串 并且效果完美 问题是当我使用 PHP DOM 解
  • 列出 Capybara/Poltergeist 元素的子元素

    我四处寻找 但找不到办法做到这一点 我们正在 EmberJS Rails 应用程序上的 Cucumber 功能中使用 Poltergeist 驱动程序运行 Capybara 测试 我无法使用 page driver debug 因为我在无头
  • 从 Swagger/OpenAPI 生成 Spring MVC 控制器

    有没有办法根据 Swagger OpenAPI 规范生成控制器 Spring MVC 代码 我知道 Swagger 可以从现有的 Spring 代码生成 但是反过来也可能吗 您基本上是在寻找生成 swagger 服务器端代码 如果您想在构建
  • 重新排列数据:从水年转换为日历年

    我有一个表 其中包含来自流量计的数据 排列如下 Water Year May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr 1 1953 1954 55 55 43 62 30 46 26 17 2
  • 如何在Android中获取MP3文件的持续时间[重复]

    这个问题在这里已经有答案了 我正在开发一个媒体播放器项目 我想根据我正在播放的 MP3 文件的长度旋转图像 即当歌曲结束时图像应该停止旋转 我想获取所选 MP3 文件的持续时间 以便可以对旋转进行计时 我读了这个问题在 Android 中从