java - Slick2d 以半速播放音频,保持音高不变

标签 java audio slick2d openal

目前,在 Slick2d 中,如果我定义声音,

Sound s = new Sound("/res/music/concertAPiano.wav");
s.play(1.0f, 1.0f);

似乎没有办法改变声音的速度。如果我将音调设置得更低,我可以让声音持续更长时间,但显然这是有代价的,因为听起来不一样。有没有人知道有一种方法可以在相同的音高下以较低的速度播放声音?

最佳答案

我认为你不能用 Slick2d 的 Sound 类来做到这一点,不幸的是,我不确定 slick 中是否有任何音频类可以做到这一点。

除非您需要在程序中经常更改此特定声音的音调,否则最好将剪辑拉入音频编辑软件(例如 audacity)中,这样您就可以通过使用它来获得所需的效果。

请记住,由于音乐本质上是一种波,音频听起来可能会失真或奇怪。它会被拉伸(stretch)或压缩,并且该波长负责控制声音的音调和速度。

如果您想了解更多信息,请查看这篇文章: Is pitch and speed the same thing in audio programming context?

关于java - Slick2d 以半速播放音频,保持音高不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30418303/

相关文章:

java - Spring 批rowMapper : no matching editors or conversion strategy found

java - 使用 JAVA 从 Socket 读取数据时减少 CPU 开销

java - 在构造函数的逻辑出现之前将模拟注入(inject)类

audio - 如何在JNLP中播放声音片段?

linux - ffmpeg 和 flac 中哪个应该用于将 wav 文件转换为 flac?为什么?

python - 我如何使用 python 检测到有东西插入了 linux 上的音频插孔?

java - 流媒体资源 (Slick2D)

java - 在 JAVA 的企业应用程序中使用静态方法

java - Slick 2D for Java 中的碰撞检测

java - 从 java LWJGL 中的字节数组绘制