Lancez Xcode et ouvrez le projet basé sur la vue que vous voulez détecter lorsqu'un utilisateur souffle dans le microphone.
Cliquez sur la flèche située à gauche de la "Cibles" l'option, puis à droite; cliquez sur l'élément qui est nommé d'après l'application. Par exemple, si l'application est nommé "GenericGame," l'article sera nommé "GenericGame." Déplacez le curseur de votre souris sur le "Ajouter" et sélectionner l'option "Cadres existants ..." option.
Cliquez sur le "+" bouton, sélectionnez le "AVFoundation.framework" option et cliquez sur le "Ajouter" bouton.
Cliquez sur la flèche à gauche du dossier nommé d'après le projet. Par exemple, si le projet est nommé "GenericGame," cliquez sur la flèche située à gauche de la "GenericGame" dossier. Cliquez sur la flèche vers la gauche de la "Classes" le dossier et cliquez sur le "ViewController.h" déposer pour afficher le contenu du fichier.
Ajoutez les deux lignes de code suivantes directement sous la "import " ligne de code:
importation
l'importation.
Ajoutez la ligne de code suivante directement sous la "interface MicBlowViewController: UIViewController {" ligne de code:
* Recorder-AVAudioRecorder.
Ajoutez le code suivant directement sous la "[Super viewDidLoad] -" ligne de code:
NSURL * url = [NSURL fileURLWithPath: @"/ Dev / null"];
&N ° 9-NSDictionary * Paramètres = [dictionaryWithObjectsAndKeys NSDictionary:
9- 9- [NSNumber numberWithFloat: 44100,0], AVSampleRateKey,
9- 9- [NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
9- 9- [NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
9- 9- [NSNumber numberWithInt: AVAudioQualityMax], AVEncoderAudioQualityKey,
9- nil];
9-NSError * erreur;
9-enregistreur = [[AVAudioRecorder alloc] initWithURL: paramètres url: erreur de paramètres:&error];
9-si (enregistreur) {
9- 9- [enregistreur prepareToRecord] -
9- 9-recorder.meteringEnabled = OUI-
9- 9- [fiche d'enregistrement] -
9-} else
9- 9-NSLog ([description de l'erreur]) -.
Ajoutez la ligne de code suivante directement sous la "- (Void) {dealloc" ligne de code:
[Enregistreur de presse] -.
Ajoutez le code suivant directement sous la "AVAudioRecorder Recorder-" ligne de code:
NSTimer levelTimer-
}
- (Void) levelTimerCallback: (NSTimer *) minuterie;
Ajoutez la ligne de code suivante directement sous la "[Document de l'enregistreur] -" ligne de code:
levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0,03 cible: auto sélecteur:selector (levelTimerCallback :) userInfo: néant répétitions: OUI] -.
Cliquez sur le projet de "ViewController.m" déposer pour afficher son contenu. Entrez le code suivant dans le fichier de ViewController.m:
- (Void) levelTimerCallback: (NSTimer *) minuterie {
9- [enregistreur updateMeters] -
9-NSLog (@"Entrée moyenne:% f entrée de pointe:% f", [Enregistreur averagePowerForChannel: 0], [enregistreur peakPowerForChannel: 0]) -
} Ajoutez le code suivant directement sous la "- (Void) {dealloc" ligne de code:
[Communiqué levelTimer] -.
Cliquez sur le projet de "ViewController.h" déposer pour afficher son contenu. Ajoutez le code suivant directement sous la "NSTimer * levelTimer-" ligne de code:
à double lowPassResults-.
Localisez la section de code qui commence avec la ligne "- (Void) levelTimerCallback: (NSTimer *) minuterie {" et se termine par "}." Remplacer cette section de code avec le code suivant:
- (Void) listenForBlow: (NSTimer *) minuterie {
9- [enregistreur updateMeters]; 9-const à double ALPHA = 0.05-
9 double peakPowerForChannel = pow (10, (0,05 [enregistreur peakPowerForChannel: 0])) -
9-lowPassResults = ALPHA peakPowerForChannel + (1,0 - ALPHA) * lowPassResults;
9 (si lowPassResults gt; 0,95)
9- 9-NSLog (@"Coup Mic détecté") -
}