Próbuję uzyskać dane o filmie, które wybrałem w UIImagePicker
.UIImagePickerControllerReferenceURL brakuje
Kiedy wchodzimy do metody delegatów UIImagePicker
(poniżej), rozumiem, że muszę używać klucza UIImagePickerControllerReferenceURL
ze słownika informacji.
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
NSLog(@"%@",url);
[library addAssetURL:[info objectForKey:UIImagePickerControllerReferenceURL] toAlbum:@"Compedia" withCompletionBlock:^(NSError *error) {
if (error!=nil) {
NSLog(@"Big error: %@", [error description]);
}
}];
}
Problem polega na tym, że adres URL jest wynikiem zer. wydrukowałem opis informacji i wygląda to tak:
Printing description of info:
{
UIImagePickerControllerMediaType = "public.movie";
UIImagePickerControllerMediaURL = "file://localhost/private/var/mobile/Applications/6630FBD3-1212-4ED0-BC3B-0C23AEEFB267/tmp/capture-T0x1f57e880.tmp.Ulfn5o/capturedvideo.MOV";
}
Po Robiłem rozeznanie I okazało się, że jeśli ustawić aparat kUTTypeMovie
powinno dać mi zarówno mediów i Przekierowanie.
tak właśnie definiuje mój aparat:
cameraUI = [[UIImagePickerController alloc] init];
cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraUI.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil];
cameraUI.allowsEditing = YES;
cameraUI.delegate = delegate;
cameraUI.showsCameraControls = NO;
cameraUI.cameraOverlayView = [self getCustomToolBar];
Czy coś mi brakuje?
Dzięki,
Dostaję błąd w tym stwierdzeniem: ALAssetsLibrary * biblioteka = [Utils defaultAssetsLibrary]; (Używanie niezadeklarowanego identyfikatora Utils) Czego tu mi brakuje? –
@AzeemShaikh Przepraszamy, to była moja wina, mam wywołania utils, które tworzą singlet ALAssetsLibrary, ponieważ najlepszą praktyką jest posiadanie tylko jednego z nich w swojej aplikacji. Istnieje kilka artykułów, posty stosu i dokumentacja Apple online wyjaśniając to.Musisz tylko zastąpić [Utils defaultAssetsLibrary] nową instancją ALAssetsLibrary. Jednak jak powiedziałem, co najlepsze, że masz singleton tego w swojej aplikacji. – ssh88