我正在开发和应用程序,我想测量车轮的转数。我买了一个便宜的自行车里程表,它使用一个磁铁开关来计算自行车车轮的转数,当磁铁离传感器足够近时,每转一圈就会关闭一次电路。我的想法是把这个磁铁开关添加到iphone耳机的麦克风电路中,然后使用音频框架来管理麦克风的连接,制作一个 可以识别麦克风何时连接或未连接的开关,然后制作一个计数器用它。我可以进行切换的方式是使用带有[AVCaptureDevice]的 AVFoundation 框架类,因为我发现这是在[this-post]回答问题之后区分外部和内部麦克风的唯一方法。
我从我的代码中粘贴了一段摘录来测试开关。计时器循环中的代码。
NSString *name;
static int micSwitch=0;
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeAudio];
for (AVCaptureDevice *device in devices) {
name = [ device localizedName];
}
if ([name isEqual:@"iPhone Microphone"]) {
micSwitch=0;
}
else{
micSwitch=1;
}
但是,此开关的更新速度比我需要的要慢。根据我的估计,开关需要在不到 1.5ms 的时间内更新。有人有更好的想法,我该如何使用音频插孔输入来做到这一点?