[분석하기] SpeakHere (1)

2011. 6. 2. 14:36제2외국어/iOS



AudioViews폴더에서 LevelMeter로 소리의 크기로 표현을 해줍니다.

AQLevelMeter.h ,AQLevelMeter.mm에서
#import <AudioToolbox/AudioQueue.h>
로 소리를 측정하고

GLLevelMeter.h,GLLevelMeter.mm 에서
#import <OpenGLES/EAGL.h>
#import <OpenGLES/ES1/gl.h>
#import <OpenGLES/ES1/glext.h>
을 이용하여 그려주는 형식인 것 같습니다.

Play & Record 폴더에 있는 게 녹음 및 플레이하는 부분입니다.

실제 Clesses 에 있는 부분에서는 .xib(인터페이스) 에 연결해주는 부분만
있고 실제 기능들은 위에 있는 것을 사용합니다.






아직 다 보지 않았지만...

GLLevelMeter.m 에서 _drawView 함수 ( 크기에 맞게 그려주는 함수인듯 보입니다.) 에서

NSLog(@"%d",peakLight); 찍어 보시면 소리 크기에 따라 값이 변하는 것을 보실 수 있습니다.


(정지시 -1 부터 가장 컸을 때 29 정도의 수치를 보였습니다.)

else
    {
        int light_i;
        CGFloat lightMinVal = 0.;
        CGFloat insetAmount, lightVSpace;
        lightVSpace = bds.size.height / (CGFloat)_numLights;
        if (lightVSpace < 4.) insetAmount = 0.;
        else if (lightVSpace < 8.) insetAmount = 0.5;
        else insetAmount = 1.;
       
        int peakLight = -1;
        if (_peakLevel > 0.)
        {
            peakLight = _peakLevel * _numLights;
            if (peakLight >= _numLights) peakLight = _numLights - 1;
        }
       
        NSLog(@"%d",peakLight);