J'ai un projet qui utilise un MPMediaPickerController
pour sélectionner des fichiers audio à partir du lecteur multimédia. Cependant, en essayant de stocker son URL, je ne reçois rien, mais null
retourné. Mon code peut être vu ci-dessous:Objective-C MPMediaItem avec l'URL nulle
- (void)showMediaPicker:(NSString *)title {
MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeAny];
picker.delegate = self;
picker.prompt = title;
picker.allowsPickingMultipleItems = NO;
picker.showsCloudItems = NO;
[self.viewController presentViewController:picker animated:YES completion:NULL];
}
- (void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
MPMediaItem *item = [mediaItemCollection.items firstObject];
NSURL *assetURL = [item valueForProperty:MPMediaItemPropertyAssetURL];//returning null
NSString *type = [self contentTypeForFile:assetURL.lastPathComponent];
NSString *title = [item valueForProperty:MPMediaItemPropertyTitle];
[self callbackWithName:title type:type url:assetURL];
}
Pour une raison quelconque, mon *assetURL
est nul lors de la sélection d'un élément audio unique à partir de la bibliothèque de l'appareil. Les seules réponses que j'ai pu trouver concernant ce problème concernent souvent l'URL null
lorsqu'un élément de cloud est sélectionné à partir du MediaPicker. Cependant, comme vu ci-dessus, j'ai mis showCloudItems = NO
.
J'apprécierais grandement toute aide; laissez-moi savoir si vous avez besoin d'informations supplémentaires!
Quelle est la valeur de 'item'? –
NSLog (@ "% @", point) dans les résultats: 7217559012103102902 –
Est-ce que 'NSURL * assetURL = (NSURL *) [article valueForProperty: MPMediaItemPropertyAssetURL];' avoir un effet? –