iPhone中的双重打击检测

iPhone中的双重打击检测,iphone,ios,avaudiorecorder,Iphone,Ios,Avaudiorecorder,我在互联网上看过很多关于检测iPhone中的吹击的教程,但我的应用程序的要求是,我需要同时检测单吹和双吹,这样,如果用户吹一次,它可以执行动作a,如果用户一起吹两次,则执行动作b 有办法吗 谢谢大家,如果你知道如何检测一次打击,你可以用一个带有阈值的计时器&看看在这段时间内是否会发生另一次打击?差不多- -(void)userDidBlow { if (hasBlownOnce) { hasBlownOnce = NO; [NSObject cance

我在互联网上看过很多关于检测iPhone中的吹击的教程,但我的应用程序的要求是,我需要同时检测单吹和双吹,这样,如果用户吹一次,它可以执行动作a,如果用户一起吹两次,则执行动作b

有办法吗


谢谢大家,

如果你知道如何检测一次打击,你可以用一个带有阈值的计时器&看看在这段时间内是否会发生另一次打击?差不多-

-(void)userDidBlow {

    if (hasBlownOnce) {

        hasBlownOnce = NO;
        [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleBlowTimedOut) object:nil];

        // do double-blow stuff

    } else {

        hasBlownOnce = YES;

        [self performSelector:@selector(singleBlowTimedOut) withObject:nil afterDelay:kDoubleBlowTime];

    }

}


-(void)singleBlowTimedOut {

    hasBlownOnce = NO;

    // do single-blow stuff

}

我没有测试它,但它看起来还可以:)

我也没有测试它,但它看起来还可以:)你们有机会试一下吗?还并没有,因为项目将在几天后开始。如果有任何成功或失败的消息,我都会保持联系。:)嗨,我也想实现同样的目标,但我只想检测一次打击。。你能告诉我你是如何检测到打击的吗?如果使用AVAudioRecorder来获取麦克风输入,这不一定有效,因为在检测到第二次打击之前会有一个延迟。