2013-01-15 4 views
-2

나는 애플에 의해 Aurio Touch Sample 코드를 조사 해왔다. 풍속계와 같은 풍속을 측정하는 데이 방법을 사용하는 방법에 대해 궁금합니다. 이것에 대한 제안? 마이크는 소리에 반응하고 마이크에 공기를 불어 넣어 소리 만 측정합니다. 풍속 측정을 위해 이것을 구현하는 방법은 무엇입니까? 누구든지이 일에 나를 도울 수 있습니까?풍속 어플리케이션 - iOS

+2

그리고 마이크 소음에서 풍속을 실제로 측정 할 수 있다고 생각하십니까? 가능한 것은 아닙니다. IMHO – Lefteris

+0

http://www.goingapps.com/Pages/default.aspx 필자는 가능한 결론을 내리기 전에 연구를해야한다고 생각합니다. 아래 표를 가져 주셔서 감사합니다 – DesperateLearner

+1

저는 특히 그것이 매우 낮은 풍속과 매우 높은 풍속에서 가능하다고 믿지 않습니다. 외부 소음도 측정을 망치고 방금 나에게 보여준 App은 아무것도 증명하지 않습니다. 거기에는 놀라운 일들을 주장하는 앱이 있으며, 오직 그렇게 할 수는 없습니다. 이것은 여러 개의 바람 상황에서 실제 테스트를 통해서만 테스트 및 확인됩니다. – Lefteris

답변

2

AVAudioRecorder를 사용하여이 작업을 수행 할 수 있습니다. 이 같은

// 1 .Init AVAudioRecorder :

NSURL *url = [NSURL fileURLWithPath:@"/dev/null"]; 

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

      NSError *error; 

      recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error]; 

      if (recorder) { 
       [recorder prepareToRecord]; 
       //  recorder.delegate = self; 
       recorder.meteringEnabled = YES; 
       [recorder record]; 

      } 

// 2. 초기화 타이머가 평균 전력을 얻을

levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.03 target: self selector: @selector(levelTimerCallback) userInfo: nil repeats: YES]; 

-(void)levelTimerCallback 
{ 
    [recorder updateMeters]; 

    float peak = [recorder averagePowerForChannel:0]; 
    float value = [meterTable valueAt:peak]; 
    //meterTable = [[MeterTable alloc] initWithMinDecibels:-80. TableSize:50 Root: 1.3]; 
    //Value 0.0~1.0 , 
} 

당신은 애플의 예에서 MeterTable를 얻을 수 있습니다 avTouch

+0

그러나 미터 표는 선형 눈금에서 dB 값으로 변환 값을 제공합니다. 계산 된 데시벨 값에서 속도에 어떻게 도달합니까? – DesperateLearner

+0

나도 몰라,하지만 당신은 장치에 샘플 코드를 시도하고 마이크에 불고 무슨 일이 일어 나는지 볼 수 있습니다. –