Java 处理声音比原始声音慢

Java 处理声音比原始声音慢,java,audio,processing,Java,Audio,Processing,我的计划基本上是这样的: import processing.sound.*; void setup() { SoundFile file = new SoundFile(this, "E:/Coding/Tetris/data/Soundtrack.mp3"); file.loop(); } void draw() {} 当我执行它时,音频大约比原始声音慢1.08倍 当然,我可以添加file.rate(1.08)但这只是一种变通方法,实际上并不能“修复

我的计划基本上是这样的:

import processing.sound.*;

void setup() {
    SoundFile file = new SoundFile(this, "E:/Coding/Tetris/data/Soundtrack.mp3");
    file.loop();
}

void draw() {}
当我执行它时,音频大约比原始声音慢1.08倍

当然,我可以添加
file.rate(1.08)但这只是一种变通方法,实际上并不能“修复”问题。如何解释慢下来的音频?

“如何解释慢下来的音频?”

48000/44100=1.088435374

速度的变化可能是由于每秒帧数的差异。您的源声音可能录制为48000,播放速度为44100 fps

有一个教程可能对使用资产有所帮助,但我不知道48000是一种受支持的格式。此外,无论您使用什么库来解码.mp3,都可能会造成限制

在将java作为一种资产之前,我会考虑使用像AdvDistar这样的工具将其转换为44100。或者,如果您正在与声音设计师合作,请让他们知道您需要他们交付的资产以44100 fps的速度进行编码


但是如果很容易在1.08播放资产,那么这可能是一个阻力最小的可接受路径?

这肯定是一个采样率问题,但是
处理。声音
是一个超简化的库,理想情况下用户不必处理转换。这无疑是解决问题的途径,但我仍然相信这是一个很好的途径。也就是说,有一个,它应该只是一个例子,即to
soundfile.sampleRate()
(未记录)很好的捕获!真不敢相信我错过了。如果你时间不够,我可以在一个简短的代码示例中进行编辑。我最终将我的文件转换为.wav(使用编辑软件),并以正常速度播放now@fdcpp两者都是48kHz,我想
处理。声音
处理mp3的效果比wav差