我试图录制用户的声音与背景音乐播放背后。我可以使用AVAudioSessionCategoryPlayAndRecord设置会话并同时播放背景和录制。但它记录了很多不正常的事情,
有人知道如何减少噪音吗?

最佳答案

#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 */
    }

关于iphone - 减少噪音,同时录制用户在iPhone应用程序中的语音?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8268070/

10-13 04:03