当前位置: 首页 > 面试题库 >

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

凌智
2023-03-14
问题内容

如何使用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获取声音文件的总时间中提供的答案?适用于WAV文件,但不适用于mp3文件。 它们是(给定文件): 和: 它们为wav文件提供相同的正确结果,但为mp3文件提供错误和不同的结果。 知道要获取mp3文件的持续时间该怎么办吗? 问题答案: 使用MP3SPI:

  • 问题内容: 我有一个声音文件,我想修改音高。该文件存储在MP3中。我已经搜索了互联网,但是未能找到任何可以修改音高的库或算法。 任何示例和/或文献将不胜感激 问题答案: 从您的问题中并不清楚,您是否只想更改播放速度(就像转盘上的音调衰减器一样),还是要更改音高而不影响播放速度。如果是后者,则需要使用时间拉伸/音高偏移算法。参见:http : //en.wikipedia.org/wiki/Audi

  • 这是我的全部代码:public class FirstActivity扩展活动{/**在活动首次创建时调用。*/ }

  • 想获取 mp3 或者 wav 文件的音调信息, 那个可以量化的音调 输入一段音频 输出量化的音调, 跟随着时间, 1 秒一个, 3,3,9,2,10,13.....

  • 问题内容: 我正在制作一个基本的文件浏览器,并希望显示每个文件的图标。有什么办法可以做到这一点? 问题答案:

  • 我在许多论坛和YouTube教程中搜索了一些简单的代码来播放声音文件(.mp3),但我找到的所有内容都不适合我。 我总是收到异常,它找不到文件或其他错误,但它总是以异常结束。 有什么我必须先配置的吗? -编辑- 我再次尝试以下代码来显示我得到的解释: 这是我的代码 添加JFXPanel后,我得到了异常:线程“main”中的异常MEDIA Exception:MEDIA _ UNAVAILABLE