保存录制的AVAudioRecorder声音文件:现在是什么? (iOS,Xcode 4)

时间:2012-02-20 08:51:21

标签: objective-c xcode file audio avaudiorecorder

在我的应用程序中,我希望用户能够录制一个声音文件并进行播放,然后保存声音文件以供日后使用。我使用this tutorial来设置播放和录制界面,但本教程省略了一个关键部分:如何将声音永久保存到磁盘?

此外,当您在这里时,如何设置录音文件的最长时间?我不希望声音文件的长度超过30秒。

谢谢,希望我能把这一切都整理好。

1 个答案:

答案 0 :(得分:1)

Voice Record Demo是一个很好的例子来看一看。它使用Cocos2D作为UI,但如果您只是看一下HelloWorldScene.m类,它包含您需要的所有代码:

  1. 创建新的音频会话
  2. 检查麦克风是否已连接
  3. 开始录制
  4. 停止录制
  5. 保存录制的音频文件
  6. 播放保存的语音文件
  7. 在初始化音频会话后,您可以使用类似下面的方法将录音保存到给定的文件名:

    -(void) saveAudioFileNamed:(NSString *)filename {
    
    destinationString = [[self documentsPath] stringByAppendingPathComponent:filename];
    NSLog(@"%@", destinationString);
    NSURL *destinationURL = [NSURL fileURLWithPath: destinationString];
    
    NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:
                              [NSNumber numberWithFloat: 44100.0],                 AVSampleRateKey,
                              [NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
                              [NSNumber numberWithInt: 1],                         AVNumberOfChannelsKey,
                              [NSNumber numberWithInt: AVAudioQualityMax],         AVEncoderAudioQualityKey,
                              nil];
    
    NSError *error;
    
    recorder = [[AVAudioRecorder alloc] initWithURL:destinationURL settings:settings error:&error];
    recorder.delegate = self;
    }