Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Come rilevare il colpo del Mic su xCode

applicazione di programmazione Xcode di Apple permette ai programmatori con conoscenza di C e di programmazione Objective- C sviluppare applicazioni per la piattaforma iOS e OS X . Se si sta sviluppando un'applicazione per un dispositivo iOS e si desidera che l' applicazione sia in grado di rilevare quando un utente soffia nel microfono , c'è un modo molto specifico per codificare l' applicazione per consentire di farlo . Questo codice significa permettere l'applicazione per ricevere input dal microfono , il campionamento del livello audio e di raccontare l'applicazione per ascoltare il rumore di qualcuno che soffia nel microfono , ognuno dei quali può essere implementato nell'applicazione Xcode . Istruzioni
1

lancio Xcode e aprire il progetto view- based che si desidera rilevare quando un utente soffia nel microfono.

2 Fare clic sulla freccia a sinistra del l'opzione " Targets" , quindi fare clic destro sulla voce che prende il nome dell'applicazione . Ad esempio , se l'applicazione è denominata " GenericGame , " la voce si chiamerà " GenericGame . " Spostare il cursore del mouse sopra l' opzione "Aggiungi" e selezionare le " discipline esistenti ... " opzione .
3

Fare clic sul pulsante "+" , selezionare l' opzione " AVFoundation.framework " e cliccare sul pulsante "Aggiungi" .
4

Fare clic sulla freccia a sinistra della cartella dal nome del progetto . Ad esempio, se il progetto è denominato " GenericGame ", fare clic sulla freccia a sinistra della cartella " GenericGame " . Fare clic sulla freccia a sinistra della cartella " Classes " e fare clic sul file " ViewController.h " per visualizzare il contenuto del file .
5

Aggiungi le seguenti due righe di codice direttamente sotto la " # importare line " di codice : # import # import
6

Aggiungere il seguente . riga di codice direttamente sotto la " @ interface MicBlowViewController : UIViewController {" riga di codice: . AVAudioRecorder * registratore ;
7

Aggiungere il seguente codice direttamente sotto la " [super viewDidLoad ] ; " , linea di codice : NSURL * url = [ NSURL fileURLWithPath : @ " /dev /null " ] ;

NSDictionary * Impostazioni = [ dictionaryWithObjectsAndKeys NSDictionary : [ NSNumber numberWithFloat : 44.100,0 ] , AVSampleRateKey , [ NSNumber numberWithInt : kAudioFormatAppleLossless ] , AVFormatIDKey , [ NSNumber numberWithInt : 1 ] , AVNumberOfChannelsKey , [ NSNumber numberWithInt : AVAudioQualityMax ] , AVEncoderAudioQualityKey , nil ] ;

NSError * errore ;

registratore = [ [ AVAudioRecorder alloc ] initWithURL : impostazioni uRL: error impostazioni : & error ] ;

se ( registratore ) { [ registratore prepareToRecord ] ; recorder.meteringEnabled = YES ; [ record registratore ] ; } else NSLog ( [ descrizione errore ] ) .
8

Aggiungere la seguente riga di codice direttamente sotto il " - ( void) dealloc {" riga di codice: [ registratore release] ;
9

Aggiungi . il seguente codice direttamente sotto la " AVAudioRecorder * registratore , " riga di codice: NSTimer * levelTimer ; }

- ( void) levelTimerCallback : ( NSTimer * ) timer ;
10

Aggiungere la seguente riga di codice direttamente sotto la " [ record registratore ] ; " riga di codice : levelTimer = [ NSTimer scheduledTimerWithTimeInterval : 0.03 bersaglio : selettore auto : @ selettore ( levelTimerCallback :) userinfo : ripete nil : YES] ; .
11

clic sul file " ViewController.m " del progetto per visualizzarne il contenuto . Immettere il codice seguente nel file ViewController.m : - ( void) levelTimerCallback : ( NSTimer * ) timer { [ registratore updateMeters ] ; NSLog ( @ "input medio: % f ingresso di picco: % f" , [ registratore averagePowerForChannel : 0 ] , [ registratore peakPowerForChannel : 0 ] ) ; }
12

Aggiungere il seguente codice direttamente sotto il " - ( void) dealloc {" riga di codice: . [ levelTimer release] ;
Pagina 13

clic sul file " ViewController.h " del progetto per visualizzarne il contenuto . Aggiungere il seguente codice direttamente sotto la " NSTimer * levelTimer , " riga di codice: . Doppi lowPassResults ;
14

Individuare la sezione di codice che inizia con la linea " - ( void) levelTimerCallback : ( NSTimer * ) timer { "e termina con " } " Sostituire questa sezione di codice con il seguente codice : - ( void) listenForBlow : . ( NSTimer * ) timer { [Recorder updateMeters ] ;

const double alpha = 0.05; doppio peakPowerForChannel = pow ( 10 , ( 0.05 * [ registratore peakPowerForChannel : 0 ] ) ) ; lowPassResults = ALPHA * peakPowerForChannel + ( 1.0 - ALPHA ) * lowPassResults ;

( lowPassResults > , 0,95) NSLog ( @ " Mic colpo rilevato" );}

 

Programmazione © www.354353.com