2014-10-30 75 views
3

這個代碼從攝像頭一個接一個地捕捉圖像,但是在下一次拍攝一個圖像後,相機會打開但黑屏(就像它的快門關閉)。所有其他ios版本的工作,但不適用於ios 8.請告訴我如何解決它?攝像頭在ios 8中顯示黑屏

-(void)openCamera 
{ 
    if(![PickerHandler doesDeviceSupportMediaType:ITEM_TYPE_PHOTO]) 
    { 
    [PickerHandler showNoDeviceSupportWarningForMediaType:ITEM_TYPE_PHOTO withDelegate:self]; 
    } 
    else 
    { 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

    picker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage]; 
    [self presentViewController:picker animated:YES completion:nil]; 
    } 

} 
+0

在iPad中對我來說也是同樣的問題。讓我知道是否找到任何解決方案。 – 2014-11-17 13:36:12

+0

@RaviJSSI在展示相機時遇到同樣的問題,第二次出現黑屏。你能告訴我你是如何解決這個問題的? – 2015-01-14 05:11:20

+0

當相機下次打開時,您可以將睡眠方式設置爲1秒。 – RaviJSS 2015-10-28 08:51:05

回答

1

此代碼不適用於模擬器。

UIImagePickerController *videoScreen = [[UIImagePickerController alloc] init]; 
    videoScreen.sourceType = UIImagePickerControllerSourceTypeCamera; 

    videoScreen.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil]; 

    videoScreen.allowsEditing = NO; 
    videoScreen.delegate = self; 

    [self presentViewController:videoScreen animated: YES completion:NO]; 
+0

其唯一的視頻錄製,但我想拍照 – RaviJSS 2014-10-30 12:17:15

+0

我想用相機不庫 – RaviJSS 2014-10-30 12:39:47

0

實現此方法

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
[self dismissViewControllerAnimated:NO completion:NO]; 
} 
+0

這是工作與否? – bhavik 2014-10-30 12:48:02

+0

@rave此答案工作與否? – bhavik 2014-10-31 04:28:41

2

轉到設置>隱私>圖片 ...並檢查您的應用程序的權限。

在代碼中,使用它來驗證相機訪問。

- (BOOL)authorizedCameraAccess 
{ 
    AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; 
    return (status == AVAuthorizationStatusAuthorized); 
}