Έναρξη Xcode και ανοίξτε το έργο που βασίζεται άποψη που θέλετε να ανιχνεύσει όταν ένας χρήστης φυσάει στο μικρόφωνο . 2
Κάντε κλικ στο βέλος στα αριστερά του η " Στόχοι " επιλογή , στη συνέχεια, κάντε δεξί κλικ στο στοιχείο που ονομάζεται μετά από την εφαρμογή . Για παράδειγμα , εάν η εφαρμογή ονομάζεται " GenericGame ", το στοιχείο αυτό θα ονομαστεί « GenericGame . " Μετακινήστε τον κέρσορα του ποντικιού σας πάνω από το " Προσθήκη " και επιλέξτε τα «Υφιστάμενα Πλαίσια για ... " επιλογή .
εικόνων 3
Κάντε κλικ στο κουμπί " + " , επιλέξτε το " AVFoundation.framework " και κάντε κλικ στο κουμπί "Προσθήκη" .
Η 4
Κάντε κλικ στο βέλος στα αριστερά του φάκελο με το όνομα του έργου . Για παράδειγμα , εάν το σχέδιο ονομάζεται " GenericGame ", κάντε κλικ στο βέλος στα αριστερά του φακέλου " GenericGame " . Κάντε κλικ στο βέλος στα αριστερά του "Μαθήματα " φάκελο και κάντε κλικ στο αρχείο " ViewController.h " για να δείτε τα περιεχόμενα του αρχείου .
5
Προσθέστε τις ακόλουθες δύο γραμμές κώδικα ακριβώς κάτω από το " # εισαγωγή Προσθέστε την ακόλουθη γραμμή κώδικα ακριβώς κάτω από το « MicBlowViewController @ interface : UIViewController {" γραμμή κώδικα : . AVAudioRecorder * recorder ? Προσθέστε τον ακόλουθο κώδικα ακριβώς κάτω από το « [ super viewDidLoad ] ? " ? γραμμή κώδικα : NSURL * url = [ NSURL fileURLWithPath : @ " /dev /null "]? NSDictionary * ρυθμίσεις = [ NSDictionary dictionaryWithObjectsAndKeys : [ NSNumber numberWithFloat : 44.100,0 ] , AVSampleRateKey , [ NSNumber numberWithInt : kAudioFormatAppleLossless ] , AVFormatIDKey , [ NSNumber numberWithInt : 1 ] , AVNumberOfChannelsKey , [ NSNumber numberWithInt : AVAudioQualityMax ] , AVEncoderAudioQualityKey , μηδέν ] ? NSError * λάθος? recorder = [ [ AVAudioRecorder alloc ] initWithURL : ρυθμίσεις url : Ρυθμίσεις λάθους: & error ] ? αν ( recorder ) { [ recorder prepareToRecord ] ? recorder.meteringEnabled = YES ? [ recorder ρεκόρ ] ? } else NSLog ( [ περιγραφή του σφάλματος ] ) ? . Προσθέστε την ακόλουθη γραμμή κώδικα ακριβώς κάτω από το " - (void ) { dealloc « γραμμή κώδικα : [δελτίο εγγραφής ] ? Προσθήκη . τον ακόλουθο κώδικα ακριβώς κάτω από το « AVAudioRecorder * recorder ? " γραμμή κώδικα : NSTimer * levelTimer ? } - (void ) levelTimerCallback : ( NSTimer * ) χρονοδιακόπτη ? Προσθέστε την ακόλουθη γραμμή κώδικα ακριβώς κάτω από το « [ αρχείο καταγραφής ] ? " γραμμή κώδικα : levelTimer = [ NSTimer scheduledTimerWithTimeInterval : 0.03 στόχο : επιλογέα αυτο : @ επιλογέα ( levelTimerCallback :) UserInfo : μηδέν επαναλήψεις : ΝΑΙ ] ? . Κάντε κλικ αρχείο " ViewController.m " του έργου για να δείτε τα περιεχόμενά του . Πληκτρολογήστε τον ακόλουθο κώδικα στο αρχείο ViewController.m : - (void ) levelTimerCallback : ( NSTimer * ) χρονοδιακόπτη { [ recorder updateMeters ] ? NSLog ( @ "Average εισόδου: % f εισόδου Peak: % f " , [ averagePowerForChannel εγγραφής : 0 ] , [ recorder peakPowerForChannel : 0 ] ) ? } Προσθέστε τον ακόλουθο κώδικα ακριβώς κάτω από το " - (void ) { dealloc « γραμμή κώδικα : . [release levelTimer ] ? Κάντε κλικ στο αρχείο " ViewController.h " του έργου για να δείτε τα περιεχόμενά του . Προσθέστε τον ακόλουθο κώδικα ακριβώς κάτω από το « NSTimer * levelTimer ? " Γραμμή κώδικα : διπλό lowPassResults ? Εντοπίστε το τμήμα του κώδικα που ξεκινά με τη γραμμή " - ( void) levelTimerCallback . . : ( NSTimer * ) χρονοδιακόπτη {" και τελειώνει με " } " Αντικαταστήστε αυτό το τμήμα του κώδικα με τον ακόλουθο κώδικα : - (void ) listenForBlow : ( NSTimer * ) χρονοδιακόπτη { [ recorder updateMeters ] ? const double ALPHA = 0,05 ? διπλή peakPowerForChannel = pow ( 10 , ( 0.05 * [ peakPowerForChannel εγγραφής : 0 ] ) ) ? lowPassResults = ALPHA * peakPowerForChannel + ( 1,0 - ALPHA ) * lowPassResults ? εάν ( lowPassResults > ? 0.95 ) NSLog ( @ " Mic χτύπημα ανιχνεύεται ")? }
Η 6
Η 7
8
Η 9
10
Η 11
Η 12
13
Η 14
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα