Apples Xcode programmering applikation lader programmører med kendskab til C og Objective- C programmering udvikle applikationer til iOS og OS X platforme. Hvis du er ved at udvikle en ansøgning om en iOS-enhed , og du ønsker, at programmet skal være i stand til at opdage , når en bruger blæser ind i mikrofonen , der er en meget bestemt måde at kode programmet at gøre det muligt at gøre det. Denne kode indebærer lade programmet til at modtage input fra mikrofonen , prøveudtagning lydniveauet og fortæller ansøgningen om at lytte efter lyden af en person blæser ind i mikrofonen , som alle kan blive gennemført i Xcode ansøgningen. Instruktioner
1
Launch Xcode og åbn visningen - baseret projekt , som du vil opdage, når en bruger blæser ind i mikrofonen.
2
Klik på pilen til venstre for de " Mål " valgmulighed, så højreklik det element, der er opkaldt efter programmet . For eksempel , hvis ansøgningen hedder " GenericGame ", punktet vil blive navngivet " GenericGame . " Flyt musen hen over de " Add ", og vælg de "Eksisterende Frameworks ... " valgmulighed.
3
Klik på "+ " knappen, vælg " AVFoundation.framework ", og klik på knappen "Tilføj" .
4
Klik på pilen til venstre for mappen med navnet efter projektet. For eksempel, " , GenericGame ", hvis projektet er opkaldt klikke på pilen til venstre for " GenericGame " mappe . Klik på pilen til venstre for "Hold " mappen og klik på " ViewController.h " fil til at se filens indhold .
5.
Tilføj følgende to linjer kode direkte under " # importere " linje kode : # import # importere
6 Tilføj følgende . linje kode direkte under " @ interfacet MicBlowViewController : UIViewController {" linje kode : . AVAudioRecorder * rekorder;
7
Føj følgende kode direkte under " [ super viewDidLoad ] ; " , linje kode : NSURL * url = [ NSURL fileURLWithPath : @ " /dev /null "] ;
NSDictionary * indstillinger = [ NSDictionary dictionaryWithObjectsAndKeys : [ NSNumber numberWithFloat : 44100,0 ] AVSampleRateKey [ NSNumber numberWithInt : kAudioFormatAppleLossless ] AVFormatIDKey [ NSNumber numberWithInt : 1] , AVNumberOfChannelsKey [ NSNumber numberWithInt : AVAudioQualityMax ] AVEncoderAudioQualityKey , nul ]
NSError * fejl,
recorder = [[ AVAudioRecorder Alloc ] initWithURL : url : Indstillinger fejl: & error ]
if ( optager) {[ recorder prepareToRecord ] recorder.meteringEnabled = JA , [ Optag ] } else NSLog ( [ fejlbeskrivelse ]) .
8
Tilføj følgende linje kode direkte under " - (void) dealloc {" linje kode : [ recorder release ]
9
Tilføj. følgende kode direkte under " AVAudioRecorder * rekorder; " linje kode : NSTimer * levelTimer ;}
- (void) levelTimerCallback : ( NSTimer * ) timer ,
10 < p > Tilføj følgende linje kode direkte under " [ Optag ]" linje kode : levelTimer = [ NSTimer scheduledTimerWithTimeInterval : 0,03 mål : self vælgeren : @ vælgeren ( levelTimerCallback :) brugerinfo : nul gentager : Ja] ; .
11
Klik projektets " ViewController.m " fil for at få vist indholdet. Indtast følgende kode i ViewController.m fil: - (void) levelTimerCallback : ( NSTimer * ) timer {[ recorder updateMeters ] NSLog ( @ "Average input: % f Peak input: % f" , [ recorder averagePowerForChannel : 0 ], [ recorder peakPowerForChannel : 0] );}
12
Føj følgende kode direkte under " - (void) dealloc {" linje kode : . [ levelTimer release] ; < br >
13
Klik på projektets " ViewController.h " fil for at få vist indholdet. Føj følgende kode direkte under " NSTimer * levelTimer ," linje kode : . Dobbelt lowPassResults ,
14
Find den del af koden , der begynder med linjen " - (void) levelTimerCallback : ( NSTimer * ) timer { "og slutter med " } " Erstat denne sektion af kode med følgende kode : - ( void) listenForBlow : . ( NSTimer * ) timer { [Recorder updateMeters ]
< p > const double ALPHA = 0.05 , dobbelt peakPowerForChannel = pow ( 10, (0,05 * [ recorder peakPowerForChannel : 0] ) ), lowPassResults = ALPHA * peakPowerForChannel + (1,0 - ALPHA ) * lowPassResults ,
if ( lowPassResults > ; 0,95 ) NSLog ( @ " Mic blow fundet" );}