AVAudioRecorder przestaje działać podczas zapisywania do / dev / null na iPhone 5s z iOS 7

Mam aplikację, która monitoruje poziom dźwięku w tle bez nagrywania do pliku. Aby to osiągnąć, używam sztuczki zapisywania do / dev / null.

Kod ten pracował na iPhone 3GS z iOS 6, iPhone 4 z iOS 6 i iOS 7 oraz w symulatorze z iOS 7 i iPhone Retina (4-calowy 64-bit).

Gdy jednak wypróbuję go na prawdziwym iPhonie 5, nagrywarka wydaje się chwytać dźwięk przez chwilę, a potem cicho umiera.

To jest kod:

    // Inititalize the audio

NSURL *url = [NSURL fileURLWithPath:@"/dev/null"];

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:url settings:settings error:&error];

if (recorder) {
    [recorder prepareToRecord];
    recorder.meteringEnabled = YES;
    [recorder record];
    levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.03 target: self selector: @selector(levelTimerCallback:) userInfo: nil repeats: YES];
    //        peakLevelTimer = [NSTimer scheduledTimerWithTimeInterval: 2.0 target: self selector: @selector(peakLevelTimerCallback:) userInfo: nil repeats: YES];
} else {
    NSLog(@"There was an error setting up the recorder.");        
    NSLog([error description]);
}

Jakieś pomysły, co może się dziać?

Czy ktoś mógłby zaproponować obejście? Pisanie do prawdziwego pliku działa, ale nie chcę wypełniać żadnego miejsca na urządzeniu tylko do monitorowania dźwięku. Czy istnieje sposób na zapisanie do małego bufora plików, który po prostu wyparowuje? Zaimplementować moje własne / dev / null, efektywnie?

questionAnswers(2)

yourAnswerToTheQuestion