6 Fügen Sie die folgende . Codezeile direkt unter dem " @ interface MicBlowViewController : UIViewController {" Codezeile: . AVAudioRecorder * Recorder ;
7
Fügen Sie den folgenden Code direkt unter dem " [super viewDidLoad ];" ; Codezeile: NSURL * url = [ NSURL fileURLWithPath : @ " /dev /null "] ;
NSDictionary * Einstellungen = [ NSDictionary dictionaryWithObjectsAndKeys : [ NSNumber numberWithFloat : 44100,0 ] AVSampleRateKey , [ NSNumber numberWithInt : kAudioFormatAppleLossless ] AVFormatIDKey , [ NSNumber numberWithInt : 1] , AVNumberOfChannelsKey , [ NSNumber numberWithInt : AVAudioQualityMax ] AVEncoderAudioQualityKey , nil ] ;
NSError * error ;
Recorder = [ [ AVAudioRecorder alloc] initWithURL : url -Einstellungen: Einstellungen Fehler : & error] ;
if ( Blockflöte) { [ Recorder prepareToRecord ] ; recorder.meteringEnabled = YES ; [ recorder record] ; } else NSLog ( [ Fehlerbeschreibung ] ); .
8
Fügen Sie die folgende Codezeile direkt unterhalb des " - (void) dealloc {" Codezeile: [ Recorder release] ;
9
hinzufügen . Mit dem folgenden Code direkt unter dem " AVAudioRecorder * Recorder ; " Codezeile: NSTimer * levelTimer ;}
- (void) levelTimerCallback : ( NSTimer *) Timer ;
10
Fügen Sie die folgende Codezeile direkt unter dem " [ Recorder aufzeichnen ];" Codezeile: levelTimer = [ NSTimer scheduledTimerWithTimeInterval : 0,03 Ziel : self selector: @ selector ( levelTimerCallback :) userInfo : nil Wiederholungen : YES] ; .
11
Klicken des Projekts " ViewController.m "-Datei , um den Inhalt zu sehen. Geben Sie folgenden Code in die Datei ViewController.m : - (void) levelTimerCallback : ( NSTimer *) Timer { [ Recorder updateMeters ] ; NSLog ( @ "Average -Eingang: % f Peak- Eingabe: % f" , [ Recorder averagePowerForChannel : 0 ], [ Recorder peakPowerForChannel : 0]); }
12
Fügen Sie den folgenden Code direkt unter dem " - (void) dealloc {" Codezeile: . [ levelTimer release] ;
seite 13
Klicken Sie auf der Projekt- " ViewController.h "-Datei , um den Inhalt zu sehen. Fügen Sie den folgenden Code direkt unter dem " NSTimer * levelTimer ; " Codezeile: . Doppel lowPassResults ;
14
Suchen Sie den Abschnitt von Code, der mit der Zeile beginnt " - (void) levelTimerCallback : ( NSTimer *) Timer {" und endet mit "} "löschen Diesen Code-Abschnitt mit dem folgenden Code : - (void) listenForBlow : . ( NSTimer *) Timer { [ Recorder updateMeters ] ;
< p > const double alpha = 0,05; Doppel peakPowerForChannel = pow ( 10 , (0,05 * [ Recorder peakPowerForChannel : 0] ) ); lowPassResults = ALPHA * peakPowerForChannel + (1,0 - ALPHA ) * lowPassResults ;
if ( lowPassResults > ; 0,95) NSLog (@ " Mic Schlag erkannt" );}