2014-03-12 49 views
3

在相機之間切換時,我正面臨非常奇怪的問題。當用戶從前向後切換攝像頭時,用戶可以看到紅色狀態欄一秒鐘後自動消失,並帶有向上滑動動畫。我搜索了很多谷歌&堆棧溢出,但沒有運氣。我發現這個question,但它與audio recording有關。這裏是我的代碼使用AVFoundation切換攝像頭時顯示的紅色狀態欄

-(void)toggleCameraIsFront:(BOOL)isFront 
{ 
    AVCaptureDevicePosition desiredPosition; 
    if (isFront) { 
     desiredPosition = AVCaptureDevicePositionFront; 
     self.videoDeviceType = VideoDeviceTypeFrontCamera; 
    } 
    else { 
     desiredPosition = AVCaptureDevicePositionBack; 
     self.videoDeviceType = VideoDeviceTypeRearCamera; 
    } 

    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; 
     } 
    } 
} 

相機切換&嘗試從AVCaptureVideoDataOutputSampleBufferDelegate沒有得到所謂的再記錄以下方法視頻後也。

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

任何形式的幫助,高度讚賞。謝謝。

+0

這是什麼運氣? –

回答

0

由於音頻錄製,此紅色狀態欄出現,因爲您提到了一個問題,該問題也描述了這是由於錄音造成的。 爲了避免這一點,你需要從AVCaptureSession

[self.captureSession removeInput:audioInput]; 

刪除音頻輸入其中audioInputAVCaptureDeviceInput對象。

請檢查@bruno答案以獲取更多說明。

相關問題