2012-05-24 6 views
-2

Je crée une application dans laquelle je dois démarrer la caméra et scanner le code QR. J'utilise un cours dans lequel le scanner démarre. c'est bien sur iPhone mais se bloque dans l'iPad. je suis en utilisant le codeL'application iPad se bloque au démarrage de la caméra

if(![[appDelegate.tabbarcontroller.viewControllers objectAtIndex:1] isMovingFromParentViewController]) { 
    [[appDelegate.tabbarcontroller.viewControllers objectAtIndex:1] popToRootViewControllerAnimated:NO]; 
} 
+3

Qu'en est l'affichage du code ici? –

+2

... et n'oubliez pas de poster l'erreur que vous obtenez dans les journaux de crash :) – dasblinkenlight

+0

Peut-être que vous essayez sur le 1er iPad qui n'a pas d'appareil photo? –

Répondre

2

aide programmation défensive dans iOS est une très bonne stratégie pour prévenir les accidents.

A propos de votre question, de doc d'Apple:

Pour utiliser un contrôleur de sélecteur d'image contenant ses contrôles par défaut, procédez comme suit:

Vérifiez que l'appareil est capable de capter le contenu de la désirée source. Pour ce faire, appelez la méthode isSourceTypeAvailable: class, en fournissant une constante à partir du "UIImagePickerControllerSourceType" enum.

Vérifiez quels types de médias sont disponibles, pour le type de source que vous utilisez, en appelant la availableMediaTypesForSourceType: méthode classe . Cela vous permet de distinguer entre une caméra pouvant être utilisée pour l'enregistrement vidéo et une caméra qui ne peut être utilisée que pour les images fixes.

Le lien iphone-tutorial-better-way-to-check-capabilities-of-ios-devices par Mugunth Kumar fournit les informations dont vous avez besoin pour Checke contre les capacités de l'appareil.

Espérons que ça aide.

0

Vous pouvez vérifier l'état AVAuthorization en utilisant le code ci-dessous lorsque vous utilisez le support.

/* 
// Media types 
AVF_EXPORT NSString *const AVMediaTypeVideo NS_AVAILABLE(10_7, 4_0); 
AVF_EXPORT NSString *const AVMediaTypeAudio NS_AVAILABLE(10_7, 4_0); 
AVF_EXPORT NSString *const AVMediaTypeText NS_AVAILABLE(10_7, 4_0); 
AVF_EXPORT NSString *const AVMediaTypeClosedCaption NS_AVAILABLE(10_7, 4_0); 
AVF_EXPORT NSString *const AVMediaTypeSubtitle NS_AVAILABLE(10_7, 4_0); 
AVF_EXPORT NSString *const AVMediaTypeTimecode NS_AVAILABLE(10_7, 4_0); 
AVF_EXPORT NSString *const AVMediaTypeMetadata NS_AVAILABLE(10_8, 6_0); 
AVF_EXPORT NSString *const AVMediaTypeMuxed NS_AVAILABLE(10_7, 4_0); 
*/ 

AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; 
if(status == AVAuthorizationStatusAuthorized) 
{ 
    // authorized 
    NSLog(@"authorized"); 
} 
else if(status == AVAuthorizationStatusDenied) 
{ 
    // denied 
    NSLog(@"denied"); 
} 
else if(status == AVAuthorizationStatusRestricted) 
{ 
    // restricted 
    NSLog(@"restricted"); 
} 
else if(status == AVAuthorizationStatusNotDetermined) 
{ 
    // not determined 
    NSLog(@"not determined"); 

    [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) { 
     if(granted){ // Access has been granted ..do something 

     } else { // Access denied ..do something 

     } 
    }]; 
}