gpt4 book ai didi

java - 未知的框架尺寸

转载 作者:行者123 更新时间:2023-12-01 08:55:51 24 4
gpt4 key购买 nike

试图获取音频文件的帧大小,但我得到的是 -1。我试图在 JavaDoc 中寻找这个结果的解释,但它没有提到任何重要的内容。这是源代码:

import javazoom.spi.mpeg.sampled.file.MpegAudioFileReader;
/*....*/
File file = new File("/home/songs/audio.mp3");
MpegAudioFileReader mpegAudioFileReader = new MpegAudioFileReader();
AudioInputStream audioInputStream = mpegAudioFileReader.getAudioInputStream(file);
AudioFormat format = audioInputStream.getFormat();
long frameSize = format.getFrameSize();//frameSize = -1
float frameRate = format.getFrameRate();//frameRate = 38.28125

检查 format 对象给出:MPEG1L3 44100.0 Hz,每个样本未知位数,立体声,未知帧大小,38.28125 帧/秒,我不知道为什么帧大小未知,尽管它确实出现在我的音频文件属性中:

enter image description here

非常感谢任何帮助。谢谢。

最佳答案

getFormat() 等是由 MPEG 人员实现的,因此它返回他们所拥有的内容 - 可能他们将此留空或无法提取;

如果您放置另一个 .wav 文件,您可能会得到 2:

try {
audioInputStream=AudioSystem.getAudioInputStream(new File(".......wav"));

System.out.println(audioInputStream.getFormat().getFrameSize());

} catch (Exception e) {
e.printStackTrace();
}

其他注意事项:我在您的显示屏上看不到帧尺寸;它是样本/比特率,所以一定要区分这一点。

但对于 mp3,你必须忍受这一点。

如果有帮助,您也可以创建自己的格式 - 不知道您的应用程序

AudioFormat format = audioInputStream.getFormat();
newFormat=new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
format.getSampleRate(),
16,
format.getChannels(),
format.getChannels() * 2,
format.getSampleRate(),
false);

关于java - 未知的框架尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42042533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com