6 Ajouter ce qui suit . ligne de code directement sous le symbole «@ Interface MicBlowViewController : UIViewController {" ligne de code: . AVAudioRecorder * enregistreur ;
7
Ajoutez le code suivant directement sous le " [ viewDidLoad super] ; " , ligne de code: NSURL * url = [ NSURL fileURLWithPath : @ " /dev /null "] ;
NSDictionary * Les réglages = [ dictionaryWithObjectsAndKeys NSDictionary : [ NSNumber numberWithFloat : 44100,0 ] , AVSampleRateKey , [ NSNumber numberWithInt : kAudioFormatAppleLossless ] , AVFormatIDKey , [ NSNumber numberWithInt : 1], AVNumberOfChannelsKey , [ NSNumber numberWithInt : AVAudioQualityMax ] , AVEncoderAudioQualityKey , nil ] ;
NSError * error ;
enregistreur
= [ [ AVAudioRecorder alloc] initWithURL : paramètres uRL: error des paramètres : & error] ;
if ( enregistreur ) { [ enregistreur prepareToRecord ] ; recorder.meteringEnabled = OUI ; [ enregistrement enregistreur ] ; } else NSLog ( [ description de l'erreur ] ) ; .
8
Ajoutez la ligne de code suivante directement sous le " - (void) dealloc {" ligne de code: [ enregistreur de presse] ;
9
Ajouter . le code suivant directement sous le " AVAudioRecorder * enregistreur ; « ligne de code: NSTimer * levelTimer ; }
- (void) levelTimerCallback : ( NSTimer *) minuterie ;
10 < p > Ajoutez la ligne de code suivante directement sous le " [ enregistrement enregistreur ];" ligne de code: levelTimer = [ NSTimer scheduledTimerWithTimeInterval : 0,03 cible : sélecteur de soi : @ selector ( levelTimerCallback :) userInfo : répète néant : YES]; .
11
Cliquez sur le fichier " ViewController.m » du projet pour afficher son contenu . Entrez le code suivant dans le fichier ViewController.m : - (void) levelTimerCallback : ( NSTimer *) timer {[ enregistreur updateMeters ] ; NSLog (@ " entrée moyenne: % f entrée de crête: % f" , [ enregistreur averagePowerForChannel : 0 ], [ enregistreur peakPowerForChannel : 0] );}
12
Ajoutez le code suivant directement sous le " - (void) dealloc {" ligne de code: . [ levelTimer release] ; < br >
13
Cliquez sur le fichier " ViewController.h » du projet pour afficher son contenu . Ajoutez le code suivant directement sous le " NSTimer * levelTimer ; « ligne de code: . LowPassResults doubles;
14
Localisez la section de code qui commence par la ligne " - (void) levelTimerCallback : ( NSTimer *) timer { "et se termine par" } "Remplacer cette section de code avec le code suivant : - (void) listenForBlow : . ( NSTimer *) timer { [ updateMeters enregistreur ] ;
< p > const doubles alpha = 0,05; deux peakPowerForChannel = pow ( 10, ( 0.05 * [ enregistreur peakPowerForChannel : 0] ) ); lowPassResults = ALPHA * peakPowerForChannel + ( 1.0 - ALPHA ) * lowPassResults ;
if ( lowPassResults > , 0,95 ) NSLog (@ " coup Mic détecté ");}