概述
检测向麦克吹气的工作可分为两部分:(1) 获取麦克输入 (2) “听”吹气的声音。
我们将使用3.0中新的AVAudioRecorder类来捕获麦克输入。使用AVAudioRecorder可以让我们使用Objective-C,而不需像其他方法一样使用C。
向麦克吹气的噪声/声音是由低频声音组成的。我们将使用low pass filter(低频滤波) 来降低来自麦克的高频声音;当滤波信号的电平等级突然增大时,我们就知道有人向麦克吹气了。
创建项目
启动Xcode创建一个View-Based iPhone程序,叫MicBlow:
- 使用Xcode菜单File > New Project… 创建一个新项目
- 从 iPhone OS > Application 选择View-based Applications然后按Choose…
- 将项目命名为MicBlow,按Save
添加AVFoundation Framework
为使用AVAudioRecorder类,我们需要向项目添加AVFoundation framework:
- 在项目Groups & Files面板上展开Targets
- 按Control-点击或右击MicBlow
- 选择Add > Existing Frameworks…
- 按下Linked Libraries左下角的+按钮
- 选择AVFoundation.framework并按下Add
- AVFoundation.framework出现在Linked Libraries下。关闭窗口
然后,我们在view controller接口中引入AVFoundation头文件并设置AVAudioRecorder实例变量:
- 展开项目Groups & Files面板下的MicBlow
- 展开Classes文件夹
- 选择MicBlowViewController.h进行编辑
- 更新文件。修改见如下2,3,7行:
1
2 3 4 5 6 7 8 9 |
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h> #import <CoreAudio/CoreAudioTypes.h>
@interface MicBlowViewController : UIViewController |
引入CoreAudioTypes头文件实际上是下一步需要的工作。我们还需要在设置AVAudioRecorder定义更多的常量。
获取麦克输入
我们在ViewDidLoad进行设置并开始“听“取麦克:
- 解除样本ViewDidLoad方法注释
- 更新如下。见4-18行: