6 Aggiungere il seguente . riga di codice direttamente sotto la " @ interface MicBlowViewController : UIViewController {" riga di codice: . AVAudioRecorder * registratore ;
7
Aggiungere il seguente codice direttamente sotto la " [super viewDidLoad ] ; " , linea di codice : NSURL * url = [ NSURL fileURLWithPath : @ " /dev /null " ] ;
NSDictionary * Impostazioni = [ dictionaryWithObjectsAndKeys NSDictionary : [ NSNumber numberWithFloat : 44.100,0 ] , AVSampleRateKey , [ NSNumber numberWithInt : kAudioFormatAppleLossless ] , AVFormatIDKey , [ NSNumber numberWithInt : 1 ] , AVNumberOfChannelsKey , [ NSNumber numberWithInt : AVAudioQualityMax ] , AVEncoderAudioQualityKey , nil ] ;
NSError * errore ;
registratore = [ [ AVAudioRecorder alloc ] initWithURL : impostazioni uRL: error impostazioni : & error ] ;
se ( registratore ) { [ registratore prepareToRecord ] ; recorder.meteringEnabled = YES ; [ record registratore ] ; } else NSLog ( [ descrizione errore ] ) .
8
Aggiungere la seguente riga di codice direttamente sotto il " - ( void) dealloc {" riga di codice: [ registratore release] ;
9
Aggiungi . il seguente codice direttamente sotto la " AVAudioRecorder * registratore , " riga di codice: NSTimer * levelTimer ; }
- ( void) levelTimerCallback : ( NSTimer * ) timer ;
10 < p > Aggiungere la seguente riga di codice direttamente sotto la " [ record registratore ] ; " riga di codice : levelTimer = [ NSTimer scheduledTimerWithTimeInterval : 0.03 bersaglio : selettore auto : @ selettore ( levelTimerCallback :) userinfo : ripete nil : YES] ; .
11
clic sul file " ViewController.m " del progetto per visualizzarne il contenuto . Immettere il codice seguente nel file ViewController.m : - ( void) levelTimerCallback : ( NSTimer * ) timer { [ registratore updateMeters ] ; NSLog ( @ "input medio: % f ingresso di picco: % f" , [ registratore averagePowerForChannel : 0 ] , [ registratore peakPowerForChannel : 0 ] ) ; }
12
Aggiungere il seguente codice direttamente sotto il " - ( void) dealloc {" riga di codice: . [ levelTimer release] ; < br > Pagina 13
clic sul file " ViewController.h " del progetto per visualizzarne il contenuto . Aggiungere il seguente codice direttamente sotto la " NSTimer * levelTimer , " riga di codice: . Doppi lowPassResults ;
14
Individuare la sezione di codice che inizia con la linea " - ( void) levelTimerCallback : ( NSTimer * ) timer { "e termina con " } " Sostituire questa sezione di codice con il seguente codice : - ( void) listenForBlow : . ( NSTimer * ) timer { [Recorder updateMeters ] ;
< p > const double alpha = 0.05; doppio peakPowerForChannel = pow ( 10 , ( 0.05 * [ registratore peakPowerForChannel : 0 ] ) ) ; lowPassResults = ALPHA * peakPowerForChannel + ( 1.0 - ALPHA ) * lowPassResults ;
( lowPassResults > , 0,95) NSLog ( @ " Mic colpo rilevato" );}