iOS:音频录制设置在模拟器中失败,但在我的设备上没有?

Posted

技术标签:

【中文标题】iOS:音频录制设置在模拟器中失败,但在我的设备上没有?【英文标题】:iOS: Audio recording setup fails in simulator, but not on my device? 【发布时间】:2014-03-12 17:29:33 【问题描述】:

我正在我的应用程序中录制音频。 该应用程序在我的带有 ios 7 的 iPhone 5C 上运行良好,但在模拟器中失败(iPhone Retina 3.5 英寸/4 英寸/4 英寸 64 位)

这是设置音频的代码:

-(void)setupAudio
    _audioMessageLabel.text = @"...Bereit für Aufnahme...";
    [_stopButton setEnabled:NO];
    [_playButton setEnabled:NO];

    // Set the audio file
    NSString *guid = [[NSUUID new] UUIDString];
    _dateiName = [NSString  stringWithFormat:@"audio-notiz-%@.m4a", guid];
    NSLog(@"dateiName: %@", _dateiName);
    NSArray  *pathComponents = [NSArray  arrayWithObjects:
                            [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject],
                            _dateiName,
                            nil];
    _outputFileURL = [NSURL  fileURLWithPathComponents:pathComponents];

    // Setup audio session
    AVAudioSession *session = [AVAudioSession sharedInstance];
    [session setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];

    // Define the recorder setting
    NSMutableDictionary  *recordSetting = [[NSMutableDictionary  alloc] init];

    [recordSetting setValue:[NSNumber  numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];
    [recordSetting setValue:[NSNumber  numberWithFloat:44100.0] forKey:AVSampleRateKey];
    [recordSetting setValue:[NSNumber  numberWithInt: 2] forKey:AVNumberOfChannelsKey];

    // Initiate and prepare the recorder

    NSError *error = nil;

    recorder = [[AVAudioRecorder alloc] initWithURL:_outputFileURL settings:recordSetting error:&error];

    if (error)
    
        NSLog(@"error: %@", [error localizedDescription]);

     else 
        recorder.delegate = self;
        recorder.meteringEnabled = YES;
        [recorder prepareToRecord];
   

在最后一行 [recorder prepareToRecord] 中失败,控制台中带有 (lldb)

【问题讨论】:

【参考方案1】:

我认为问题可能是 ios 模拟器不支持麦克风:

Is it possible to record actual sound on the simulator using mic

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_Guide/TestingontheiOSSimulator/TestingontheiOSSimulator.html#//apple_ref/doc/uid/TP40012848-CH4-SW1

【讨论】:

以上是关于iOS:音频录制设置在模拟器中失败,但在我的设备上没有?的主要内容,如果未能解决你的问题,请参考以下文章

Android 模拟器似乎以 96khz 录制音频

音频引擎仅在运行 iOS 10 的设备(iphone 6)上失败,在所有模拟器设备上运行良好或真实设备直到 iphone 6s

在模拟器中录制和播放声音效果很好,但在我的 iPhone 中却不行

IOs App 在模拟器上运行但在设备上崩溃(主要使用 AVFoundation)

截图在模拟器中有效,但在真实设备上失败

Xcode 构建在设备上运行但在模拟器上失败