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]
は常にfalseを返します。したがって、カメラは変更されません。 セッションで新しい入力デバイスを追加できないという理由はありません。
この問題を解決するのを手伝ってください。
ありがとうございます。
あなたは新しいものを追加する前に、前の入力を削除する必要があります。ここで確認してください – stefos
@stefos、その後、私は '[CaptureSession removeInput:VideoInputDevice];というコードで書かれたステートメントの効果になります – DeathStroke