2011-11-25 3 views
4

배경 음악을 재생하면서 사용자 음성을 녹음하려고합니다. AVAudioSessionCategoryPlayAndRecord을 사용하여 세션을 설정하고 배경을 재생하고 동시에 녹음 할 수 있습니다. 하지만 많은 것을 기록하고 있습니다.아이폰 애플리케이션에서 사용자 음성을 녹음하는 동안 소음을 줄이십니까?

소음을 줄이는 방법에 대한 아이디어가 있습니까?

+3

소원을 저장했지만 소음 감소로 변경했으면 좋겠다. 훨씬 의미가 있습니다. – sosborn

+0

귀하의 질문에 대한 해결책을 얻었습니까 ??? –

+0

예 해결책을 얻었습니다. – Aadil

답변

1
#define DOCUMENTS [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] 
#define PATH_ARQUIVO [DOCUMENTS stringByAppendingPathComponent:@"gravacao.ma4"] 



-(IBAction) recordAudio:(UIButton *)sender { 

     NSURL* urlArquivo = [[NSURL alloc] initFileURLWithPath:PATH_ARQUIVO]; 

     NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys: 
     [NSNumber numberWithInt:AVAudioQualityMin], AVEncoderAudioQualityKey, 
     [NSNumber numberWithInt:16], AVEncoderBitRateKey, 
     [NSNumber numberWithInt:2], AVNumberOfChannelsKey, 
     [NSNumber numberWithFloat:44.1], AVSampleRateKey, 
            nil]; 
     NSError* error; 

     self.audioRecorder = [[AVAudioRecorder alloc] initWithURL:urlArquivo settings:dic error:&error]; 


     if (error) { 
      NSLog(@"error: %@", [erro localizedDescription]); 
     } else { 
      //buffering 
      [self.audioRecorder prepareToRecord]; 
      //recording 
      [self.audioRecorder record]; 
     } 
    } 

    -(IBAction) stopRecorder:(UIButton *)sender { 
     if ([self.audioRecorder isRecording]) { 
      [self.audioRecorder stop]; 
     } 
    } 



    -(IBAction) PlayAudio:(UIButton *)sender { 
     NSURL* urlArquivo = [[NSURL alloc] initFileURLWithPath:PATH_ARQUIVO]; 

     NSError* error; 
     self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:urlArquivo error:&error]; 

     if (erro) { 
      NSLog(@"error %@", [error localizedDescription]); 
     } else { 
      self.audioPlayer.numberOfLoops = HUGE_VALF; 
      self.audioPlayer.enableRate = YES; 
      [self.audioPlayer prepareToPlay]; 
      [self.audioPlayer play]; 
     } 
    } 

    -(IBAction) stopPlaying:(UIButton *)sender { 
     if ([self.audioPlayer isPlaying]) { 
      [self.audioPlayer stop]; 
     } 
    } 

    -(IBAction) changeRate:(UISlider *)sender { 
     self.audioPlayer.rate = sender.value * 2; 
     /* it's a UISlider, max value = 1, min = 0 */ 
    } 
관련 문제