【问题标题】:How do I mix two audio files at different times?如何在不同时间混合两个音频文件?
【发布时间】:2021-03-02 17:26:45
【问题描述】:

我有两个音频文件,一个是 20 秒长,另一个是 10 秒长。我想混合这两个样本,以便第二个剪辑从第 5 秒开始播放到第 15 秒。如何使用 Java 的混音器来做到这一点?

【问题讨论】:

    标签: java audio mixer


    【解决方案1】:

    很大程度上取决于您要达到的精度水平。

    一个相对简单的编码方法是通过SourceDataLineAudioInputStream 播放第一个声音。这样,与Clip 对象不同,您可以计算经过的帧数。包括与触发第二个声音之前要经过的时间量相对应的目标帧计数。当到达该帧时,调用第二个声音的start 方法,该方法可以是完全准备就绪的Clip(不要通过加载或打开来增加延迟,这些事情应该提前完成)。

    即便如此,第二个声音相对于第一个声音开始的确切时间可能会有一些变化。我知道它具有帧级精度的唯一方法是在同一个 while 循环中处理两个输入,手动将字节转换为 PCM,添加值,然后转换回字节并发送到单个 SourceDataLine

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 2019-05-19
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多