我正在寻找一种简单的方法来创建一个能在Swift中播放特定频率音调的功能。到目前为止,我发现的所有内容都需要创建一个单独的类,或类似的东西。任何人都能指出一些可以在一个函数中播放音调(我选择的频率)的代码吗?
谢谢!
答案 0 :(得分:4)
通常,iOS中的所有合成音频都基于回调(函数或块),并且应该通过包含异步回调函数或块的类来完成,以避免各种问题。有可能将所有音频会话设置,音频播放器(单元或队列)初始化以及音频合成渲染回调块填充到一个Swift函数(加上一些全局状态)中,但它不简洁(更像是一个一百行Swift),启动延迟可能会阻塞你的调用线程。
如果您不需要在应用中合成音调,则可以预先录制音调,在应用中包含此音频文件,然后使用AVAudioPlayer API播放。
如果您不需要纯音,另一种可能是使用CoreMidi播放音符。
补充:我为Swift 3类添加了一些源代码,可以在此Gist中播放给定频率和持续时间的音调:https://gist.github.com/hotpaw2/630a466cc830e3d129b9它不是单个函数,而是包含回调块的类。 / p>