安卓。 MediaPlayer 的 getduration() 方法返回错误值

标签 android

我在使用 android MediaPlayer 的 getduration() 方法时遇到以下问题。例如以下文件(文件的实际持续时间为 5747000 毫秒):

File to test it

MediaPlayer 准备好后,我在以下代码中打印 log cat 当前位置和 getduration 值:

Log.d("Podcast", "getDuration:"+mediaPlayer.getDuration());
Log.d("Podcast","getCurrentPosition:"+mediaPlayer.getCurrentPosition());

在 log cat 中我可以看到以下内容:

D/Podcast﹕ getDuration:2885642
D/Podcast﹕ getCurrentPosition:3288059

我找到了另一篇包含相关信息的帖子,但我还没有找到解决方案。 Similar issue found on stackoverflow

这怎么可能?谁能帮我解决这个问题吗?

谢谢。问候。

最佳答案

根据此线程:https://code.google.com/p/android/issues/detail?id=2559 mp3 文件的频率应为 44,100 Hz。否则,MediaPlayer 将按照 MP3 的实际采样率与 44,100 Hz 的比率缩放时间。

关于安卓。 MediaPlayer 的 getduration() 方法返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31706191/

相关文章:

java - 如何从 Android 应用程序对 Spring Security 进行身份验证?

android - 在外部存储中保存图像文件有效,但图像不会立即显示在图库中

android - Android phonegap 应用程序中的 Jquery Mobile Gesture Swipe 左/右问题

java - ArrayList<String> getIntent().getStringArrayListExtra

android - PhotoEditorSDK:从服务器添加自定义覆盖

android - 如何让手机从 Qt Android 振动

android - 我们如何在 Android Jetpack Compose UI 中将文本格式化为上标或下标?

java - 我的方法没有按我的预期运行

java - Android 上未发生 POST?

java - 来自 Json 的 Android 登录屏幕