0

録音を処理するコントローラーを書きたいです。マイクに音があるときに音を録音する必要があります。

ボタンが押されたときに音を録音する作業コードがあります。

-(IBAction) startRecording
{
    NSLog(@"startRecording");
    audioRecorder = nil;

    // Init audio with record capability
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryRecord error:nil];

    NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] initWithCapacity:10];
   // if(recordEncoding == ENC_PCM)
    //{

        [recordSettings setObject:[NSNumber numberWithInt: kAudioFormatLinearPCM] forKey: AVFormatIDKey];
        [recordSettings setObject:[NSNumber numberWithFloat:500.0] forKey: AVSampleRateKey];//44100.0
        [recordSettings setObject:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];
        [recordSettings setObject:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
        [recordSettings setObject:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
        [recordSettings setObject:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];

   // NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/recordTest.caf", [[NSBundle mainBundle] resourcePath]]];

    NSURL *url = [NSURL URLWithString:[self copyFile:@"recordTest.caf"]];



    NSError *error = nil;
    audioRecorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];
    [audioRecorder setDelegate:self];

    if ([audioRecorder prepareToRecord] == YES){
        [audioRecorder record];
        NSLog(@"recording");
    }else {
        int errorCode = CFSwapInt32HostToBig ([error code]);
        NSLog(@"Error: %@ [%4.4s])" , [error localizedDescription], (char*)&errorCode);

    }

}

では、マイク入力からの音を録音またはモニターし、音が 1000 Hz を超えたときに録音を開始することは可能ですか?

これに関する文献もありがたいです。

ありがとう。

4

1 に答える 1

0

お役に立てば幸いですリンクをダウンロードしてくださいl

于 2012-08-06T08:47:06.367 に答える