如何使用Java获取声音文件的总时间?

-更新

看起来这段代码确实起作用了:
long audioFileLength = audioFile.length();

    recordedTimeInSec = audioFileLength / (frameSize * frameRate);

我知道如何获取文件长度,但是我没有找到如何获取声音文件的帧频和帧大小...任何想法或链接吗?

-更新

另一个工作代码(使用@mdma的提示):
    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));

最佳答案

给定File,您可以编写

File file = ...;
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
AudioFormat format = audioInputStream.getFormat();
long frames = audioInputStream.getFrameLength();
double durationInSeconds = (frames+0.0) / format.getFrameRate();

关于java - 如何使用Java获取声音文件的总时间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3009908/

10-12 04:19