2010-12-30 3 views
4

In "imagePickerController:didFinishPickingMediaWithInfo:" hat das Info-Wörterbuch manchmal nicht den Schlüssel "UIImagePickerControllerMediaURL". Manchmal hat es das schon. Ich habe versucht, die Ziele zu säubern, aber das hat nicht geholfen. Außerdem ist der Workflow immer derselbe: Ich folge den gleichen Schritten und wähle die gleiche Videodatei aus der Bibliothek. Irgendwann hat das Infowörterbuch den Schlüssel "UIImagePickerControllerMediaURL" und manchmal fehlt "UIImagePickerControllerMediaURL" im Info-Lexikon selbst für dieselbe Datei. Konnte es nicht verstehen. Kann jemand helfen?"imagePickerController: didFinishPickingMediaWithInfo:" "UIImagePickerControllerMediaURL" Schlüssel seltsames Verhalten im Info-Wörterbuch

Das ist mein NSLog von Informationen Wörterbuch wenn ich ein Video/Film von Fotos Bibliothek auswählen:

info dict = { 
    UIImagePickerControllerMediaType = "public.movie"; 
    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.MOV?id=1000000466&ext=MOV"; 
} 
+0

Dies geschieht auf einem iPhone 4 mit 2 GB freiem Speicherplatz, iOS 6.1, für ein Video mit +2 Minuten. Für ein iPhone 5 mit 600 MB freiem Speicherplatz ist das bei einem Video mit derselben Länge nicht möglich. Ich dachte, es könnte mit dem Mangel an freiem Speicherplatz auf dem Gerät zusammenhängen, um das temporäre komprimierte Video zu speichern, aber das summiert sich nicht. –

+0

Hat jemand eine Lösung dafür? Die Antwort auf die Antwort scheint die Frage nicht einmal zu verstehen. –

Antwort

4
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

{ 
    NSMutableDictionary *infoDict = [[NSMutableDictionary alloc]init]; 

    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 

    if ([mediaType isEqualToString:@"public.image"]){ 

     UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"" message:@"You Select a image Please select Movie" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

     [myAlertView show]; 

     [myAlertView release]; 

    } 

    else if ([mediaType isEqualToString:@"public.movie"]){ 

     NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; 

     mAppDelegate.uploadType = @"Video"; 

     NSData *webData = [NSData dataWithContentsOfURL:videoURL]; 

     [infoDict setValue:webData forKey:@"VideoUrl"]; 

     [infoDict setValue:[[mAppDelegate.userInfoArray objectAtIndex:1]valueForKey:@"user_id"] forKey:@"user_id"]; 

     [[WakeUpParsing sharedInstance] assignSender:self]; 

     [[WakeUpParsing sharedInstance] startParsingForVedioUploade:infoDict]; 

    } 

    [picker dismissModalViewControllerAnimated:YES]; 

    [infoDict release]; 

} 


- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker 

{ 

    // Dismiss the image selection and close the program 
    [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 

} 
+0

Aber es zeigt UIImagePickerControllerMediaType = "public.movie"; in meinem Logbuch. So ist es bestätigt, dass es Film ist – Shailesh

+0

Es kann nicht passieren, wenn Ihr Medientyp mov ist, dann seine URL auch dort – GhostRider

+0

Siehe mein NSLog() für Info-Wörterbuch - oben bearbeitet – Shailesh

0

Es passiert, wenn Ihr Konto Video auf iCloud speichern. Wenn Sie ein Video auswählen, wird es vorübergehend von icloud heruntergeladen und Ihnen angezeigt, so dass UIImagePickerControllerMediaURL nicht angezeigt wird.