1

iOS7 でのビデオとオーディオの録音に問題があります。私は ios6.1.3 でアプリケーションを作成しましたが、iPhone を ios7 に更新するまで、すべてが完璧に機能していました。AVCaptureSession を使用し、入力デバイス (マイクとカメラ) を接続します。以下のコードを参照してください。これがデバイスのセットアップ方法です。

- (void)setupSessionWithPreset:(NSString *)preset withCaptureDevice:(AVCaptureDevicePosition)cd withTorchMode:(AVCaptureTorchMode)tm withError:(NSError **)error
{

    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
    [audioSession setActive:YES error:nil];
//    NSLog(@"sessionError :%@", sessionError);

    self.movieFileOutput = [[AVCaptureMovieFileOutput alloc] init];
    [self startNotificationObservers];

    if(setupComplete)
    {
        *error = [NSError errorWithDomain:@"Setup session already complete." code:102 userInfo:nil];
        return;
    }

    setupComplete = YES;
    AVCaptureDevice *captureDevice = [self cameraWithPosition:cd];

    if ([captureDevice hasTorch])
    {
        if ([captureDevice lockForConfiguration:nil])
        {
            if ([captureDevice isTorchModeSupported:tm])
            {
                [captureDevice setTorchMode:AVCaptureTorchModeOff];
            }
            [captureDevice unlockForConfiguration];
        }
    }

    self.captureSession = [[AVCaptureSession alloc] init];
    self.captureSession.sessionPreset = preset;
    NSError *errorVI = nil;
    self.videoInput = [[AVCaptureDeviceInput alloc] initWithDevice:captureDevice error:&errorVI];
    NSLog(@"Video Input :%@", errorVI);
    if([self.captureSession canAddInput:self.videoInput])
    {
        [self.captureSession addInput:self.videoInput];
    }
    else
    {
        *error = [NSError errorWithDomain:@"Error setting video input." code:101 userInfo:nil];
        return;
    }
    NSError *errorAI = nil;
    self.audioInput = [[AVCaptureDeviceInput alloc] initWithDevice:[self audioDevice] error:&errorAI];

    if([self.captureSession canAddInput:self.audioInput])
    {
        [self.captureSession addInput:self.audioInput];
    }
    else
    {
        *error = [NSError errorWithDomain:@"Settings->Privacy->Microphone->VideoFrames(On)" code:500 userInfo:nil];
        return;
    }

    if([self.captureSession canAddOutput:self.movieFileOutput])
    {
        [self.captureSession addOutput:self.movieFileOutput];
    }
    else
    {
        *error = [NSError errorWithDomain:@"Error setting file output." code:101 userInfo:nil];
        return;
    }
}

その結果、サムネイルと完全なオーディオのみを受け取り、ビデオは受け取りませんでした。助けてください<本当にありがたいです。

4

0 に答える 0