Я разрабатываю приложение и хочу измерять обороты колеса. Я купил дешевый велосипедный одометр, который подсчитывает обороты велосипедного колеса с помощью магнитного переключателя, замыкающего цепь один раз за оборот, когда магнит находится достаточно близко к датчику. У меня возникла идея добавить этот магнитный переключатель в схему микрофона гарнитуры iphone, а затем использовать аудиофреймворки для управления подключением микрофона, создав переключатель, который может определить, подключен микрофон или нет, а затем сделать с ним счетчик. Способ, которым я мог переключиться, заключался в использовании платформы AVFoundation с [AVCaptureDevice], поскольку я обнаружил, что это единственный способ различать внешний и внутренний микрофон после [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,5 мс . У кого-нибудь есть идеи получше, как мне это сделать с помощью входа аудиоразъема?
N < 1ms
, а не 50 мс. - person A-Live   schedule 12.04.2013