Ios 使用AVFoundation切换摄像头时显示红色状态栏
在切换摄像机时,我面临着非常奇怪的问题。当用户将摄像头从前到后切换时,用户可以看到红色状态栏一秒钟,然后随着向上滑动动画自动消失。我在google上搜索了很多东西&stack overflow,但运气不好。我发现了这个,但它与录音有关。这是我的密码Ios 使用AVFoundation切换摄像头时显示红色状态栏,ios,camera,avfoundation,avcapturesession,Ios,Camera,Avfoundation,Avcapturesession,在切换摄像机时,我面临着非常奇怪的问题。当用户将摄像头从前到后切换时,用户可以看到红色状态栏一秒钟,然后随着向上滑动动画自动消失。我在google上搜索了很多东西&stack overflow,但运气不好。我发现了这个,但它与录音有关。这是我的密码 -(void)toggleCameraIsFront:(BOOL)isFront { AVCaptureDevicePosition desiredPosition; if (isFront) { desiredPos
-(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
非常感谢您的任何帮助。谢谢。此红色状态栏是由于音频录制而出现的,正如您提到的一个问题,该问题也描述了这是由于音频录制。 为了避免这种情况,您需要从
AVCaptureSession
[self.captureSession removeInput:audioInput];
其中,音频输入是AVCaptureDeviceInput
对象
请检查答案以获得更多澄清