【问题标题】:Processing sound is slower than the original处理声音比原来慢
【发布时间】:2021-01-08 18:45:44
【问题描述】:

我的程序本质上是这样的:

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);,但这只是一种解决方法,实际上并不能“解决”问题。声音变慢了怎么解释?

【问题讨论】:

    标签: java audio processing


    【解决方案1】:

    “如何解释变慢的音频?”

    48000 / 44100 = 1.088435374

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

    Using Files and Format Converters 上有一个教程,它可能有助于使用资产,但我不知道 48000 是受支持的格式。此外,您用于解码 .mp3 的任何库也可能存在限制。

    我会考虑使用 Audacity 之类的工具将资产转换为 44100,然后再将其作为资产引入 Java。或者,如果您正在与声音设计师合作,请让他们知道您需要他们提供的资产以 44100 fps 进行编码。

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

    【讨论】:

    • 这绝对是采样率问题,但processing.sound 是一个超简化的库,理想情况下用户不应该处理转换。这绝对是解决问题的途径,但我仍然相信flagging an issue 是一个很好的解决途径。
    • 也就是说,有configuration class for the processing.sound library,应该只是forcing sample ratesoundfile.sampleRate() 的一种情况(未记录)
    • 虽然很好!不敢相信我错过了。如果您时间紧迫,我可以编辑一个简短的代码示例。
    • 我最终将文件转换为 .wav(使用编辑软件),它现在可以正常速度播放
    • @fdcpp 都是 48kHz,我猜 processing.sound 处理 mp3 比 wav 差
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 2014-06-10
    相关资源
    最近更新 更多