Novocaine 0.0.1

Novocaine 0.0.1

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布上次发布2014年12月

未声明的用户维护。



Novocaine 0.0.1

  • 作者
  • Ari Lerner 和 Alex Wiltschko

对于 iOS 和 OSX 的高性能音频的一种镇痛剂。

在 iOS 和 Mac OS X 上使用 Audio Units 进行快速音频处理很困难,并且会留下伤痕和血迹。以前需要几天才能完成的事情,现在只需几行代码即可完成。

获取音频

Novocaine *audioManager = [Novocaine audioManager];
[audioManager setInputBlock:^(float *newAudio, UInt32 numSamples, UInt32 numChannels) {
    // Now you're getting audio from the microphone every 20 milliseconds or so. How's that for easy?
    // Audio comes in interleaved, so,
    // if numChannels = 2, newAudio[0] is channel 1, newAudio[1] is channel 2, newAudio[2] is channel 1, etc.
}];

播放音频

Novocaine *audioManager = [Novocaine audioManager];
[audioManager setOutputBlock:^(float *audioToPlay, UInt32 numSamples, UInt32 numChannels) {
    // All you have to do is put your audio into "audioToPlay".
}];

有人真正使用它吗?

是的。Novocaine 是 Octave、Fourier 和 oScope 音频分析应用套件音频引擎三年工作的成果。

注意事项

RingBuffer 类是用 C++ 编写的,使其运行更加迅速,因此使用它的类将需要是 Objective-C++。将所有使用 RingBuffer 的 MyClass.m 文件更改为 MyClass.mm。

需要一些示例吗?

在 ViewController.mm 中有许多我编写的小示例。取消注释一个并听听它的声音。
请注意,对于涉及直播的示例,您应该使用耳机。麦克风和扬声器的距离过近会产生一些难听的反馈。
如果您想深入了解 Core Audio,可以点击这里:http://www.subfurther.com/blog/2009/04/28/an-iphone-core-audio-brain-dump/、http://atastypixel.com/blog/using-remoteio-audio-unit/。

想了解 Core Audio 的细节?

如果您想要深入了解,想要勇敢地靠近硬件,我可以指向我学习如何进行这些操作的地方。Chris Adamson 和 Michael Tyson 都是 iOS 音频领域的大人物,他们都写了不可或缺的博客文章(Chris 的,Michael 的)。另外,Chris Adamson 现在有一本关于 Core Audio 的整本书。我一定会为了获得这本书而做些无法言说的牺牲。