使用AVFoundation,我卡在從後排到前排和從前到後更換相機。
爲此我使用以下代碼。攝像頭在ios中沒有變化
- (IBAction)CameraToggleButtonPressed:(id)sender
{
if ([[AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo] count] > 1)
{
NSError *error;
AVCaptureDeviceInput *NewVideoInput;
AVCaptureDevicePosition position = [[VideoInputDevice device] position];
if (position == AVCaptureDevicePositionBack)
{
NewVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:[self CameraWithPosition:AVCaptureDevicePositionFront] error:&error];
}
else if (position == AVCaptureDevicePositionFront)
{
NewVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:[self CameraWithPosition:AVCaptureDevicePositionBack] error:&error];
}
if (NewVideoInput != nil)
{
[CaptureSession beginConfiguration]; [CaptureSession removeInput:VideoInputDevice];
if ([CaptureSession canAddInput:NewVideoInput])
{
[CaptureSession addInput:NewVideoInput];
VideoInputDevice = NewVideoInput;
}
else
{
[CaptureSession addInput:VideoInputDevice];
}
[self CameraSetOutputProperties];
[CaptureSession commitConfiguration];
}
}
}
[CaptureSession canAddInput:NewVideoInput]
返回總是假,所以相機不會改變。 我沒有明白爲什麼會話無法添加新的輸入設備。
請幫我解決這個問題。
在此先感謝。
您需要添加新的人之前先刪除以前的輸入。在這裏檢查 – stefos
@stefos,那麼我在代碼中['CaptureSession removeInput:VideoInputDevice]中寫入的語句的效果是什麼?' – DeathStroke