6 Adicione o seguinte linha de código diretamente abaixo do " MicBlowViewController @ Interface : UIViewController {" linha de código: . AVAudioRecorder * gravador ;
7
Adicione o seguinte código logo abaixo da " [super viewDidLoad ]; " , linha de código: NSURL * url = [ NSURL fileURLWithPath : @ " /dev /null "] ;
NSDictionary * Configurações = [ dictionaryWithObjectsAndKeys NSDictionary : [ NSNumber numberWithFloat : 44.100,0 ] , AVSampleRateKey , [ NSNumber numberWithInt : kAudioFormatAppleLossless ] , AVFormatIDKey , [ NSNumber numberWithInt : 1] , AVNumberOfChannelsKey , [ NSNumber numberWithInt : AVAudioQualityMax ] , AVEncoderAudioQualityKey , nil ];
NSError * erro;
gravador = [[ AVAudioRecorder alloc] initWithURL : As configurações de URL: erro definições: & erro ];
if ( gravador) {[ gravador prepareToRecord ]; recorder.meteringEnabled = YES ; [ registro gravador ]; } else NSLog ( [ descrição do erro ]); .
8
Adicione a seguinte linha de código diretamente abaixo do " - (void) { dealloc " linha de código: [release gravador ];
9
Adicionar . o seguinte código logo abaixo da " AVAudioRecorder * gravador ; " linha de código: NSTimer * levelTimer ;}
- (void) levelTimerCallback : ( NSTimer *) temporizador;
10
Adicione a seguinte linha de código diretamente abaixo do " [ registro gravador ]," linha de código: levelTimer = [ NSTimer scheduledTimerWithTimeInterval : 0,03 alvo : auto seletor: @ selector ( levelTimerCallback :) userInfo : nil repete : YES] ; .
11
Clique arquivo " ViewController.m " do projeto para exibir seu conteúdo. Digite o seguinte código no arquivo ViewController.m : - ( void) levelTimerCallback : ( NSTimer *) temporizador {[ gravador updateMeters ]; NSLog ( @ "input Média: % f entrada Peak :% f" , [ averagePowerForChannel gravador : 0 ], [ gravador peakPowerForChannel : 0] );}
12
Adicione o seguinte código logo abaixo da " - (void) { dealloc " linha de código: . [release levelTimer ]; < br >
13
Clique no arquivo " ViewController.h " do projeto para exibir seu conteúdo. Adicione o seguinte código logo abaixo da " NSTimer * levelTimer ; " linha de código: lowPassResults duplas;
14
Localize a seção de código que começa com a linha " - (void) levelTimerCallback . . : ( NSTimer *) temporizador {" e termina com "} " Substituir esta seção do código com o seguinte código : - ( void) listenForBlow : ( NSTimer *) temporizador {[ gravador updateMeters ];
const double ALPHA = 0,05; dupla peakPowerForChannel = pow (10, (0,05 * [ peakPowerForChannel gravador : 0 ] ) ) ; lowPassResults = ALPHA * peakPowerForChannel + ( 1.0 - Alpha ) * lowPassResults ;
if ( lowPassResults > ; 0,95) NSLog ( @ " golpe Mic detectado ");}