在 Swift 中创建一个播放特定频率音调的函数

Sun*_*nay 3 audio ios swift

我正在寻找一种简单的方法来创建一个函数,该函数将在 Swift 中播放特定频率的音调。到目前为止,我发现的所有内容都需要创建一个单独的类,或者类似的东西。任何人都可以向我指出一些可以在函数内播放音调(我选择的频率)的代码吗?

谢谢!

hot*_*aw2 5

一般来说,iOS 中的所有合成音频都是基于回调(函数或块),并且应该通过包含异步回调函数或块的类来完成,以避免各种问题。可能可以将所有音频会话设置、音频播放器(单元或队列)初始化和音频合成渲染回调块填充到一个 Swift 函数(加上一些全局状态)中,但它不会简洁(更像是在一个数百行 Swift),启动延迟可能会阻塞您的调用线程。

如果您不需要在应用程序中合成音调,您可以预先录制音调,将此音频文件包含在您的应用程序中,然后使用 AVAudioPlayer API 播放它。

如果您不需要纯音,另一种可能性是使用 CoreMidi 来演奏音符。

补充:我在这个要点中放置了一些 Swift 3 类的源代码,该类可以播放给定频率和持续时间的音调:https://gist.github.com/hotpaw2/630a466cc830e3d129b9 它不是一个单一的函数,而是一个类包括回调块。