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