【问题标题】:AVAudioRecorder doesn't record on OS X MavericksAVAudioRecorder 无法在 OS X Mavericks 上录制
【发布时间】:2015-07-10 13:28:36
【问题描述】:

在我的可可应用程序中,我尝试从内部麦克风录制声音。为此,我正在使用 AVAudioRecorder 类。在下面的代码中,我设置了 AVAudioRecorder 实例。

- (void)setupAudioRecorder {

    NSMutableDictionary *recordSettings = [NSMutableDictionary dictionary];

    recordSettings[AVFormatIDKey] = @(kAudioFormatLinearPCM);
    recordSettings[AVSampleRateKey] = @(16000.0);
    recordSettings[AVNumberOfChannelsKey] = @(1);
    recordSettings[AVLinearPCMBitDepthKey] = @(16);
    recordSettings[AVLinearPCMIsBigEndianKey] = @(NO);
    recordSettings[AVLinearPCMIsFloatKey] = @(NO);

    recordSettings[AVEncoderBitRateStrategyKey] = AVAudioBitRateStrategy_Variable;
    recordSettings[AVEncoderAudioQualityForVBRKey] = @(AVAudioQualityMedium);
    recordSettings[AVSampleRateConverterAlgorithmKey] = AVSampleRateConverterAlgorithm_Mastering;

    recordSettings[AVSampleRateConverterAudioQualityKey] = @(AVAudioQualityMedium);

    NSString *file = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)
                   objectAtIndex:0]
                  stringByAppendingPathComponent:@".recorder_voice.caf"];

    NSFileManager *fm = [NSFileManager defaultManager];

    if ([fm fileExistsAtPath:file])
        [fm removeItemAtPath:file error:nil];

    NSURL *url = [NSURL fileURLWithPath:file];
    NSError *err = nil;

    self.recorder.delegate = nil;
        self.recorder = [[AVAudioRecorder alloc] initWithURL:url
                                            settings:recordSettings
                                               error:&err];
    if(!self.recorder){
    // show error
    }

    [self.recorder setDelegate:self];
    [self.recorder prepareToRecord];

    self.recorder.meteringEnabled = YES;
}

在优胜美地,一切正常,但在小牛队,我保持沉默。执行 [self.recorder prepareToRecord]; 时系统日志显示错误:

AQMEIO.cpp:377 _FindIOUnit:错误 -66680。

这是什么意思,我该如何解决?

【问题讨论】:

    标签: cocoa osx-mavericks avaudiorecorder


    【解决方案1】:

    我终于找到了答案。原因在于沙盒项目设置。我没有在 Target -> Capabilities -> App Sanbox 中选中麦克风框。优胜美地忽略了这个问题,但小牛却没有。

    【讨论】:

      猜你喜欢
      • 2015-06-04
      • 2013-11-03
      • 2014-04-18
      • 2013-11-01
      • 1970-01-01
      • 2014-08-15
      • 2014-03-20
      • 2014-05-10
      • 1970-01-01
      相关资源
      最近更新 更多