6 Agregue la siguiente . línea de código justo debajo de la " @ interface MicBlowViewController : UIViewController {" línea de código: . AVAudioRecorder * grabador ;
7
Añada el siguiente código justo debajo de la " [super viewDidLoad ] ; " , la línea de código: NSURL * url = [ NSURL fileURLWithPath : @ " /dev /null "];
NSDictionary * Ajustes = [ dictionaryWithObjectsAndKeys NSDictionary : [ NSNumber numberWithFloat : 44100.0 ] , AVSampleRateKey , [ NSNumber numberWithInt : kAudioFormatAppleLossless ] , AVFormatIDKey , [ NSNumber numberWithInt : 1 ] , AVNumberOfChannelsKey , [ NSNumber numberWithInt : AVAudioQualityMax ] , AVEncoderAudioQualityKey , nil ] ;
NSError * error ;
grabadora
= [ [ AVAudioRecorder alloc ] initWithURL : configuración de uRL: error ajustes : & error ] ;
if ( grabadora) {[ grabador prepareToRecord ] ; recorder.meteringEnabled = YES; [ registrador ] ; } else NSLog ( [ descripción de error ] ) .
8
Agregue la siguiente línea de código justo debajo de la " - ( void) dealloc {" línea de código: [ grabador de liberación ] ;
9
Agregar . el siguiente código justo debajo de la " AVAudioRecorder * grabador , " línea de código: NSTimer * levelTimer ;}
- ( void) levelTimerCallback : ( NSTimer *) temporizador ;
10
Agregue la siguiente línea de código justo debajo de la " [ registrador ] ; " línea de código: levelTimer = [ NSTimer scheduledTimerWithTimeInterval : 0,03 target: selector auto : @ selector ( levelTimerCallback :) userInfo : repite nil : YES] ; .
11
clic archivo " ViewController.m " del proyecto para ver su contenido . Escriba el siguiente código en el archivo ViewController.m : - ( void) levelTimerCallback : ( NSTimer *) timer {[ grabador updateMeters ] ; NSLog ( @ " de entrada promedio: % f de entrada pico: % f" , [ grabador averagePowerForChannel : 0 ] , [ grabador peakPowerForChannel : 0 ] ) ;}
12
Añada el siguiente código justo debajo de la " - ( void) dealloc {" línea de código: . [ levelTimer liberación ], < br > Página 13
Haga clic en el archivo " ViewController.h " del proyecto para ver su contenido . Agregue el código siguiente justo debajo de la " NSTimer * levelTimer , " línea de código: . LowPassResults dobles;
14
Localice la sección de código que comienza con la línea " - ( void) levelTimerCallback : ( NSTimer *) timer { "y termina con " } "Reemplazar esta sección de código con el siguiente código: - ( void) listenForBlow : . ( NSTimer *) timer { [ updateMeters grabadora ] ;
< p > const double ALPHA = 0,05 ; doble peakPowerForChannel = pow ( 10 , ( 0,05 * [ grabador peakPowerForChannel : 0 ])) ; lowPassResults = ALPHA * peakPowerForChannel + ( 1.0 - ALPHA ) * lowPassResults ;
if ( lowPassResults > ; 0,95 ) NSLog ( @ " golpe Mic detectado" ) ;}