3

サウンドを録音するために、次のコードを使用しています。

- (IBAction) recordClicked:(id)sender {
    NSLog(@"play Record");
    if (audioPlayerRecord) {
        if (audioPlayerRecord.isPlaying) [audioPlayerRecord stop];
        else {
            [audioPlayerRecord play];
            [self updateCurrentTimeForPlayer:audioPlayerRecord];
        }
        return;
    } 

    //Initialize playback audio session
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *recDir = [paths objectAtIndex:0];
    NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/recordTest.caf", recDir]];

    NSError *error;
    audioPlayerRecord = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    [audioPlayerRecord play];
    duration.text = [NSString stringWithFormat:@"%d:%02d", (int)audioPlayerRecord.duration / 60, (int)audioPlayerRecord.duration % 60, nil];
    progressBar.maximumValue = audioPlayerRecord.duration;
    [self updateViewForPlayerState:audioPlayerRecord];
    NSLog(@"Recoder file >");
}

録音中、次のようなレベルメーターを表示したい

レベルメーター

この問題を達成するための他の簡単な方法はありますか?

4

1 に答える 1

0

AQRecorder.mmを確認してください...

探す:void AQRecorder::StartRecord(CFStringRef inRecordFile)

ここでコメントするか、行を削除する必要があります

url = CFURLCreateWithString(kCFAllocatorDefault, (CFStringRef)recordFile, NULL);

url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)recordFile, kCFURLPOSIXPathStyle, false);
于 2013-01-07T13:27:01.890 に答える