"imagePickerController: didFinishPickingMediaWithInfo:" "UIImagePickerControllerMediaURL" странное поведение в информационном словаре - PullRequest
4 голосов
/ 30 декабря 2010

В "imagePickerController:didFinishPickingMediaWithInfo:" информационный словарь иногда не имеет ключа "UIImagePickerControllerMediaURL".Иногда это так.Я пытался очистить мишени, но это не помогло.Кроме того, рабочий процесс всегда один и тот же: я выполняю одни и те же шаги и выбираю один и тот же видеофайл из библиотеки.Иногда информационный словарь содержит ключ "UIImagePickerControllerMediaURL", а иногда "UIImagePickerControllerMediaURL" отсутствует в самом информационном словаре для того же файла.Не мог этого понять.Может ли кто-нибудь помочь?

Это мой NSLog информационный словарь, когда я выбираю видео / фильм из библиотеки фотографий:

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

Ответы [ 2 ]

4 голосов
/ 30 декабря 2010
- (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 голосов
/ 30 ноября 2015

Это происходит, когда ваш аккаунт Video сохраняют на iCloud. Когда вы выбираете видео, оно временно загружается из icloud и показывается вам, так что UIImagePickerControllerMediaURL не появится.

...