3

I've been making this app that includes recording a video together with audio. The videorecording works as it should, and on most devices, so does the audo recording.

Except, on an iPad 2 (iOS 6.1.3) the audio recording does not work. In the official "Camera" app, the audio recording works flawlessly, so it's not a device-dependent problem.

This is the code:

    NSURL *outputFileURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), @"output.mov"]];

    NSError *error;

    AVCaptureDevice *device = [self frontCamera];
    AVCaptureDeviceInput *inputVideo = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];

    self.session = [[AVCaptureSession alloc] init];
    [self.session beginConfiguration];
    if([device supportsAVCaptureSessionPreset:AVCaptureSessionPreset1280x720]){
        [self.session setSessionPreset:AVCaptureSessionPreset1280x720];
    } else if([device supportsAVCaptureSessionPreset:AVCaptureSessionPresetiFrame960x540]){
        [self.session setSessionPreset:AVCaptureSessionPresetiFrame960x540];
    } else if([device supportsAVCaptureSessionPreset:AVCaptureSessionPreset640x480]){
        [self.session setSessionPreset:AVCaptureSessionPreset640x480];
    }


    self.recorder = [[AVCamRecorder alloc] initWithSession:self.session outputFileURL:outputFileURL];
    [self.recorder setDelegate:self];

    AVCaptureDevice *audioDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
    NSError *audioError;
    AVCaptureDeviceInput *inputAudio = [[AVCaptureDeviceInput alloc] initWithDevice:audioDevice error:&audioError];

    NSLog(@"AudioError: %@", audioError);
    NSLog(@"InputAudio: %@", inputAudio);

    [self.session addInput:inputVideo];
    [self.session addInput:inputAudio];
    [self.session commitConfiguration];
    [self.session startRunning];

In the log, "audioError" is null and "inputAudio“ seems to be a valid variable. Any idea on how to fix this?

RienK
  • 103
  • 6

0 Answers0