actionscript-3 - 在不更改音调的情况下动态更改as3中声音的播放速度

标签 actionscript-3 audio bytearray mp3

我正在基于简单的歌曲创作制作游戏,并且我计划拥有一种功能,使玩家可以聆听他们在游戏中创作的歌曲。旋律的节奏由计时器系统控制,但这不适用于我计划实现的背景音轨预设,因为背景音轨中的每个mp3文件都代表一个小节而不是一个音符。

虽然可以使用我的计时器系统播放背景音乐,但这将需要更多的音频文件,更多的编码,并使该项目远远落后于计划。因此,我需要控制我已经拥有的文件的播放速度。我通常在这里看到两个如何执行此操作的示例:http://2008.kelvinluck.com/2008/11/first-steps-with-flash-10-audio-programming/和此处:http://blog.andre-michelle.com/2009/pitch-mp3/

两者的问题在于它们也会改变音高。这对我来说是个问题,因为我非常希望播放器能够分别更改其歌曲的音高和节奏。我认为我需要的代码与上面的示例相似,但是由于对字节数组等方面的经验不足,因此我很难理解这些代码。我希望能够理解我包含的示例,以便弄清楚我需要做些什么才能使我的游戏按应有的方式工作,但是我们会提供各种帮助。谢谢=)

最佳答案

您可以尝试https://github.com/also/soundtouch-as3
http://static.ryanberdeen.com/projects/soundtouch-as3/demo/player/stretch.swf上有一个早期(alpha)演示
如果使用的是1.0x-1.5x因子,则质量是“可接受的”(小于1.0会产生非常人为的失真)

关于actionscript-3 - 在不更改音调的情况下动态更改as3中声音的播放速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36123683/

相关文章:

actionscript-3 - 有没有办法用adobe air生成快捷方式文件?

actionscript-3 - Object、* 和根本没有类型之间有什么区别?

python - Python:While循环中导入函数的奇怪问题

c# - 使用 C# 在 Windows 10 上控制左右扬声器平衡级别

java - 在 Java 中将十六进制数据读入字节数组?

将字节数组转换为 double - c

java - 在 Java 中将 InputStream 转换为字节数组

闪光时间拉伸(stretch)

c++ - 为什么 TCP socket 在收到错误的 ACK 时发送 RST 数据包而不是重新发送数据?

c# - 如何使用C#将两个音频文件和一个视频文件合并为一个视频文件?