gpt4 book ai didi

iphone - 使用 AVAudioPlayer 播放声音的起音/延音(循环)/衰减的最佳方式

转载 作者:行者123 更新时间:2023-12-03 18:58:44 26 4
gpt4 key购买 nike

我在寻找播放攻击(声音开始)/维持(循环声音)/衰减(声音结束)序列而没有过渡中断的资源时遇到问题。是否有任何好的库可以处理这个问题,或者我应该使用 AVAudioPlayer 推出自己的库? AudioQueue 是一个更好的地方吗?我曾经使用 SoundEngine.cpp,但它已经消失了一段时间了。 CAF 仍然是最好的格式吗?

谢谢!

最佳答案

根据您的描述,听起来您好像正在尝试编写一个软件合成器。使用 AVAudioPlayer 实现此类操作的唯一方法是将音符的整个持续时间编写为单个 WAV 文件,然后使用 AVAudioPlayer 播放整个内容。

要创建任意持续时间的音符声音,该声音会响应用户操作(例如点击按钮)而开始播放,然后继续播放,直到第二个用户操作(例如点击“停止”按钮或松开手指)第一个按钮)开始将循环区域的音量调低至零(“释放”部分)的过程,您将需要使用 AudioQueue (AVAudioPlayer 可用于播放完全在内存中构建的音频,但整个播放必须在播放开始之前构建,这意味着您无法更改正在播放的内容以响应用户操作(停止播放除外)。

这是another question/answer它简单地展示了如何使用 AudioQueue。 AudioQueue 每当需要加载更多数据来播放时都会调用回调方法 - 您必须实现循环和封装原始 WAV 文件数据的所有代码。

关于iphone - 使用 AVAudioPlayer 播放声音的起音/延音(循环)/衰减的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5932282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com