簡體   English   中英

前置攝像頭上的操作表無響應

[英]Action Sheet on front camera not responding

我已經設置了一個操作表,可以在拍照時返回3個選項(拍照,從畫廊中選擇並取消),前置攝像頭出現並完美地拍照,但是問題是當我再次拍照時,它沒有告訴我那張破舊的照相機,它告訴我背面的照相機。 這是代碼:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{   
    CustomImagePickerController *imagePicker = [[CustomImagePickerController alloc] init];
    [imagePicker setDelegate:self];
    [imagePicker setAllowsEditing:YES];

    if(buttonIndex == 0) {
        [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
        [imagePicker setCameraDevice:UIImagePickerControllerCameraDeviceFront];
    } else if(buttonIndex == 1) {
        [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    }

我在代碼中還有更多內容,但主要操作已在此處設置。

有什么事嗎 謝謝

發生這種情況的原因是,當您第一次啟動攝像機時,在關閉控制器后,后台的AVCaptureSession可能會繼續運行。 因此,下次您展示它時,它嘗試添加前置攝像頭,但它很忙,因此轉到下一個可用攝像頭(后置攝像頭),中斷了自身(因此釋放了前一個),依此類推。 如果使用的是ARC,則最好將imagePicker用作使用它的類的屬性。

或每次檢查相機設備

if(buttonIndex == 0)
    {
        if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
        {
            imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
            [imagePicker setCameraDevice:UIImagePickerControllerCameraDeviceFront];
        }

    }
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    CustomImagePickerController *imagePicker = [[CustomImagePickerController alloc] init];
[imagePicker setDelegate:self];
[imagePicker setAllowsEditing:YES];

    if(buttonIndex == 0)
    {
        if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
        {
            imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
            [imagePicker setCameraDevice:UIImagePickerControllerCameraDeviceFront];
        }
        else
        {
            imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
            [imagePicker setCameraDevice:UIImagePickerControllerCameraDeviceFront];
        }

         [self presentViewController:imagePicker animated:YES completion:nil ];

    }
    else if (buttonIndex==1)
    {
        imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
        [self presentViewController:imagePicker animated:YES completion:nil ];

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM