Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako rozpoznať ranu na mikrofón na Xcode

programovanie aplikácií Apple Xcode umožňuje programátorov so znalosťou C a Objective - C programovanie vyvíjať aplikácie pre iOS a OS X platformy . Ak vyvíjate aplikáciu pre zariadenia iOS a chcete , aby aplikácie , aby bolo možné zistiť , kedy užívateľ fúka do mikrofónu , že je veľmi špecifický spôsob , ako kódovať aplikáciu, aby mohla urobiť . Tento kód zahŕňa umožňujúce aplikácii prijímať vstup z mikrofónu , vzorkovanie hladiny zvuku a hovoriť aplikácii počúvať zvuk niekto fúka do mikrofónu , z ktorých všetky môžu byť implementované v aplikácii Xcode . Pokyny dovolená 1

Spustite Xcode a otvorte projekt zobrazenie založené na ktorú chcete zistiť , kedy užívateľ fúka do mikrofónu .
2

Kliknite na šípku na ľavej strane " Ciele " možnosť , kliknite pravým tlačidlom myši na položku , ktorá je pomenovaná po aplikácii . Napríklad , ak je aplikácia s názvom " GenericGame , " položka bude volať " GenericGame . " Presuňte kurzor myši nad " Pridať " možnosť a vyberte možnosť " existujúce rámce ... " možnosť .
3

kliknite na tlačidlo " + " , vyberte možnosť " AVFoundation.framework " a kliknite na tlačidlo " Pridať " .
4

kliknite na šípku na ľavej strane zložky pomenované po skončení projektu . Napríklad , ak je projekt s názvom " GenericGame , " kliknite na šípku vľavo od zložky " GenericGame " . Kliknite na šípku na ľavej strane zložky " tried " a kliknite na súbor " ViewController.h " zobraziť obsah súboru .
5

pridajte nasledujúce dva riadky kódu priamo pod " # import " riadok kódu : . # import # import
6

Pridajte nasledujúci riadok kódu priamo pod " @ rozhranie MicBlowViewController : UIViewController { " riadok kódu : . AVAudioRecorder * záznamník ,
7

Pridajte nasledujúci kód priamo pod " [ Super viewDidLoad ] ; " , riadok kódu : NSURL * url = [ NSURL fileURLWithPath : @ " /dev /null " ] ;

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

NSError * chyba ,

rekordér = [ [ AVAudioRecorder Alloc ] initWithURL : Nastavenie url : Chyba nastavenia : a error ] ;

if ( rekordér ) { [ rekordér prepareToRecord ] ; recorder.meteringEnabled = ÁNO ; [ rekordér záznam ] ; } else NSLog ( [ Popis chyby ] ) ; .
8

Pridajte nasledujúci riadok kódu priamo pod " - ( void ) { dealloc " riadok kódu : [ správa záznamník ] ;
9.

Pridať . nasledujúci kód priamo pod " AVAudioRecorder * rekordéra , " riadok kódu : NSTimer * levelTimer ; }

- ( void ) levelTimerCallback : ( NSTimer * ) časovača ;
10

Pridajte nasledujúci riadok kódu priamo pod " [ rekordéra záznam ] ; " riadok kódu : levelTimer = [ NSTimer scheduledTimerWithTimeInterval : 0,03 cieľ : vlastné voliča : @ voliča ( levelTimerCallback :) UserInfo : nil opakovanie : YES ] ; .
11

Kliknite na súbor projektu " ViewController.m " zobrazíte jeho obsah . Zadajte nasledujúci kód do súboru ViewController.m : - ( void ) levelTimerCallback : ( NSTimer * ) časovač { [ rekordér updateMeters ] ; NSLog ( @ " Priemerný príkon : % f Špičkový príkon : % f " , [ rekordér averagePowerForChannel : 0 ] , [ rekordér peakPowerForChannel : 0 ] ) ; }
12

Pridajte nasledujúci kód priamo pod " - ( void ) { dealloc " riadok kódu : . [ levelTimer správa ] ;
Stránka 13

Kliknite na súbor projektu " ViewController.h " zobrazíte jeho obsah . Pridajte nasledujúci kód priamo pod " NSTimer * levelTimer , " riadok kódu : double lowPassResults ;
14

Vyhľadajte časť kódu , ktorý začína s linkou " - ( void ) levelTimerCallback . . : ( NSTimer * ) časovač { " a končí " } " nahradiť túto časť kódu s nasledujúcim kódom : - ( void ) listenForBlow : ( NSTimer * ) časovač { [ rekordér updateMeters ] ;

const double ALPHA = 0,05 ; double peakPowerForChannel = pow ( 10 , ( 0.05 * [ rekordér peakPowerForChannel : 0 ] ) ) ; lowPassResults = ALPHA * peakPowerForChannel + ( 1,0 - ALPHA ) * lowPassResults ;

if ( lowPassResults > ; 0,95 ) NSLog ( @ " Mic rana zistená " ) ; }

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené