2

サウンドを録音し、アプリケーションで同じサウンドを同時に再生したい。

音を録音しました:-

 NSString *soundFilePath = [docsDir
                               stringByAppendingPathComponent:@"sound.caf"];
    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];    
    NSDictionary *recordSettings = [NSDictionary
                                    dictionaryWithObjectsAndKeys:
                                    [NSNumber numberWithInt:AVAudioQualityMin],
                                    AVEncoderAudioQualityKey,
                                    [NSNumber numberWithInt:16],
                                    AVEncoderBitRateKey,
                                    [NSNumber numberWithInt: 2],
                                    AVNumberOfChannelsKey,
                                    [NSNumber numberWithFloat:44100.0],
                                    AVSampleRateKey,
                                    nil];

    NSError *error = nil;

    audioRecorder = [[AVAudioRecorder alloc]
                     initWithURL:soundFileURL
                     settings:recordSettings
                     error:&error];

    if (error)
    {
        NSLog(@"error: %@", [error localizedDescription]);
    } else {
        [audioRecorder prepareToRecord];
        [audioRecorder record];
    }

-(void)StopRecord{
[audioRecorder stop];
 NSString *soundFilePath = [docsDir stringByAppendingPathComponent:@"sound.caf"];

    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];  
    AVAudioPlayer *newPlayer =
    [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error: nil];    
    if([soundFileURL isFileURL]){
        printf("isFileURL\n");
    }   
    [newPlayer prepareToPlay];
    [newPlayer setDelegate: self];
       [newPlayer play];

}

これで..音を録音し、何らかの方法をクリックすると、録音が​​停止して再生が開始されます..どうすればいいですか..録音を開始すると同時に音を再生する..

4

1 に答える 1

2

SC_listner を使用して解決策を得ました。

[[SCListener sharedListener] listen];   

   if ([SCListener sharedListener] != nil)
    {
        Float32 percentage = [[SCListener sharedListener] peakPower];
        }

これを行うことで、リアルタイムのピッチを検出できます

于 2013-03-15T12:33:38.287 に答える