Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να ανιχνεύσει το Blow του μικροφώνου στο xCode

Xcode εφαρμογή του προγραμματισμού της Apple επιτρέπει στους προγραμματιστές με γνώσεις προγραμματισμού C και Objective- C αναπτύξουν εφαρμογές για το iOS και OS X πλατφόρμες . Εάν αναπτύσσετε μια εφαρμογή για μια συσκευή iOS και θέλετε η εφαρμογή να είναι σε θέση να ανιχνεύσει όταν ένας χρήστης φυσάει στο μικρόφωνο , υπάρχει ένα πολύ συγκεκριμένο τρόπο για να κωδικοποιήσει την εφαρμογή , ώστε να μπορέσει να το πράξει . Αυτός ο κωδικός περιλαμβάνει επιτρέπει την εφαρμογή για να λάβει στοιχεία από το μικρόφωνο , η δειγματοληψία το επίπεδο ήχου και λέει την αίτηση για να ακούσετε τον ήχο κάποιου φυσώντας στο μικρόφωνο , τα οποία μπορούν να εφαρμοστούν στην εφαρμογή Xcode . Οδηγίες
Η 1

Έναρξη Xcode και ανοίξτε το έργο που βασίζεται άποψη που θέλετε να ανιχνεύσει όταν ένας χρήστης φυσάει στο μικρόφωνο . 2

Κάντε κλικ στο βέλος στα αριστερά του η " Στόχοι " επιλογή , στη συνέχεια, κάντε δεξί κλικ στο στοιχείο που ονομάζεται μετά από την εφαρμογή . Για παράδειγμα , εάν η εφαρμογή ονομάζεται " GenericGame ", το στοιχείο αυτό θα ονομαστεί « GenericGame . " Μετακινήστε τον κέρσορα του ποντικιού σας πάνω από το " Προσθήκη " και επιλέξτε τα «Υφιστάμενα Πλαίσια για ... " επιλογή .
εικόνων 3

Κάντε κλικ στο κουμπί " + " , επιλέξτε το " AVFoundation.framework " και κάντε κλικ στο κουμπί "Προσθήκη" .
Η 4

Κάντε κλικ στο βέλος στα αριστερά του φάκελο με το όνομα του έργου . Για παράδειγμα , εάν το σχέδιο ονομάζεται " GenericGame ", κάντε κλικ στο βέλος στα αριστερά του φακέλου " GenericGame " . Κάντε κλικ στο βέλος στα αριστερά του "Μαθήματα " φάκελο και κάντε κλικ στο αρχείο " ViewController.h " για να δείτε τα περιεχόμενα του αρχείου .
5

Προσθέστε τις ακόλουθες δύο γραμμές κώδικα ακριβώς κάτω από το " # εισαγωγή " γραμμή κώδικα : . # # εισαγωγές εισαγωγής
Η 6

Προσθέστε την ακόλουθη γραμμή κώδικα ακριβώς κάτω από το « MicBlowViewController @ interface : UIViewController {" γραμμή κώδικα : . AVAudioRecorder * recorder ?
Η 7

Προσθέστε τον ακόλουθο κώδικα ακριβώς κάτω από το « [ 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 ( [ περιγραφή του σφάλματος ] ) ? .
8

Προσθέστε την ακόλουθη γραμμή κώδικα ακριβώς κάτω από το " - (void ) { dealloc « γραμμή κώδικα : [δελτίο εγγραφής ] ?
Η 9

Προσθήκη . τον ακόλουθο κώδικα ακριβώς κάτω από το « AVAudioRecorder * recorder ? " γραμμή κώδικα : NSTimer * levelTimer ? }

- (void ) levelTimerCallback : ( NSTimer * ) χρονοδιακόπτη ?

10

Προσθέστε την ακόλουθη γραμμή κώδικα ακριβώς κάτω από το « [ αρχείο καταγραφής ] ? " γραμμή κώδικα : levelTimer = [ NSTimer scheduledTimerWithTimeInterval : 0.03 στόχο : επιλογέα αυτο : @ επιλογέα ( levelTimerCallback :) UserInfo : μηδέν επαναλήψεις : ΝΑΙ ] ? .
Η 11

Κάντε κλικ αρχείο " ViewController.m " του έργου για να δείτε τα περιεχόμενά του . Πληκτρολογήστε τον ακόλουθο κώδικα στο αρχείο ViewController.m : - (void ) levelTimerCallback : ( NSTimer * ) χρονοδιακόπτη { [ recorder updateMeters ] ? NSLog ( @ "Average εισόδου: % f εισόδου Peak: % f " , [ averagePowerForChannel εγγραφής : 0 ] , [ recorder peakPowerForChannel : 0 ] ) ? }
Η 12

Προσθέστε τον ακόλουθο κώδικα ακριβώς κάτω από το " - (void ) { dealloc « γραμμή κώδικα : . [release levelTimer ] ?

13

Κάντε κλικ στο αρχείο " ViewController.h " του έργου για να δείτε τα περιεχόμενά του . Προσθέστε τον ακόλουθο κώδικα ακριβώς κάτω από το « NSTimer * levelTimer ? " Γραμμή κώδικα : διπλό lowPassResults ?
Η 14

Εντοπίστε το τμήμα του κώδικα που ξεκινά με τη γραμμή " - ( 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 χτύπημα ανιχνεύεται ")? }
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα