0

Apple の AVCam に似た、カメラで写真を撮るためのカスタム ビューを持つアプリを作成しています。その中で、カメラが切り替わるたびにフラッシュアイコンのボタンが消えて再表示されるようにしたいと思います。IE フロントカメラを使用する場合、フラッシュボタンはそこにあるべきではなく、バックカメラを使用する場合はあるべきです!

現時点での私のコードは次のとおりです。

  AVCaptureDevicePosition position = [[videoInput device] position];

    if (position == AVCaptureDevicePositionBack) {
  self.flashButton.hidden == YES;
}

しかし、videoInput でエラーが発生し、その理由がわかりません...ドキュメントやコードの変更に関するアイデアを教えていただければ幸いです。

編集

基本的に具体的には、このコードで「宣言されていない識別子の使用」というエラーが発生するのはなぜですか:

AVCaptureDevicePosition position = [[videoInput device] position];
4

3 に答える 3

2

以下のコードはあなたを助けるかもしれません:

AVCaptureDeviceInput *newVideoInput;
AVCaptureDevicePosition currentCameraPosition = [[videoInput device] position];

if (currentCameraPosition == AVCaptureDevicePositionBack)
{
    currentCameraPosition = AVCaptureDevicePositionFront;
}
else
{
    currentCameraPosition = AVCaptureDevicePositionBack;
}

AVCaptureDevice *backFacingCamera = nil;
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *device in devices) 
{
    if ([device position] == currentCameraPosition)
    {
        backFacingCamera = device;
    }
}
newVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:backFacingCamera error:&error];
于 2013-05-09T11:31:51.497 に答える