我试图计算Android中mp3文件的确切歌曲持续时间。
我尝试使用计算:歌曲持续时间=文件大小/比特率,产生非常接近的结果,但我想更准确地计算它。
我在Java here中找到了一个解决方案,它建议进行此计算:歌曲持续时间= filesize /(framesize * framerate)并提供此示例代码:
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
AudioFormat format = audioInputStream.getFormat();
long audioFileLength = file.length();
int frameSize = format.getFrameSize();
float frameRate = format.getFrameRate();
float durationInSeconds = (audioFileLength / (frameSize * frameRate));
但是,Android中不再支持AudioInputStream。那么我试着弄清楚如何使用Android获取帧大小和帧速率,但我也找不到任何解决方案。有关如何在Android中计算此内容的任何想法吗?
另外,使用建议的here MediaMetadataRetriever.METADATA_KEY_DURATION并不会为我生成正确的歌曲持续时间。原因是因为我正在播放我的mp3文件,并试图严格根据文件的标题信息计算歌曲持续时间。这样,我就可以在流媒体流程中尽早更新我的进度条。