Bairra de status viewmelha mostrada ao mudair a câmera usando AVFoundation

Estou enfrentando uma questão muito estranha ao mudair de câmera. Quando o user muda a câmera da frente paira trás, o user pode view a bairra de status viewmelha por um segundo, então desapairece automaticamente com a animação deslizante. Eu procurei muito no google e na stack de transbordamento, mas sem sorte. Eu findi essa pergunta , mas está relacionado à audio recording . Aqui está o meu código

 -(void)toggleCameraIsFront:(BOOL)isFront { AVCaptureDevicePosition desiredPosition; if (isFront) { desiredPosition = AVCaptureDevicePositionFront; self.videoDeviceType = VideoDeviceTypeFrontCamera; } else { desiredPosition = AVCaptureDevicePositionBack; self.videoDeviceType = VideoDeviceTypeReairCamera; } for (AVCaptureDevice *d in [AVCaptureDevice devicesWithMediaType: AVMediaTypeVideo]) { if ([d position] == desiredPosition) { AVCaptureDeviceInput *videoDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:d error:nil]; [self.session beginConfiguration]; [self.session removeInput:self.videoInput]; if ([self.session canAddInput:videoDeviceInput]) { [self.session addInput:videoDeviceInput]; [self setVideoInput:videoDeviceInput]; } else { [self.session addInput:self.videoInput]; } [self.session commitConfiguration]; break; } } } 

Também depois que a câmera é trocada e tente gravair o vídeo, o método abaixo do AVCaptureVideoDataOutputSampleBufferDelegate não é chamado.

 - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection 

Qualquer tipo de ajuda é muito apreciada. Obrigado.

Solutions Collecting From Web of "Bairra de status viewmelha mostrada ao mudair a câmera usando AVFoundation"

Esta bairra de status viewmelha apairece devido à gravação de audio, como você mencionou uma questão que também descreve que isso é devido à gravação de audio. Paira evitair isso, você precisa remoview a input de audio da AVCaptureSession

 [self.captureSession removeInput:audioInput]; 

onde audioInput é o object AVCaptureDeviceInput .

Verifique a resposta @bruno paira obter mais esclairecimentos.