0

写真ライブラリからビデオを選択/圧縮しようとしていますが、期間と作成日を取得しようとすると、両方とも null が返されます (期間のデフォルトは 0.0 秒)。ここで何か間違ったことをしているかどうかはわかりません。

- (void)imagePickerController:(UIImagePickerController *)uploadPick didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

 if (CFStringCompare (( CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo)
 {
    NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];

    //Video Duration:
            MPMoviePlayerController *mp = [[MPMoviePlayerController alloc]
                                   initWithContentURL:videoURL];

    VideoTime.text = [NSString stringWithFormat:@"Time: %.2f", mp.duration];

    //Video Creation Date
    NSDictionary *metadataDictionary = (NSDictionary *)[info valueForKey:UIImagePickerControllerMediaMetadata];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    NSString *stringDate = [dateFormatter stringFromDate:metadataDictionary.fileCreationDate];
    [dateFormatter release];
    VideoDateTaken.text = [NSString stringWithFormat:@"Date Taken: %@", stringDate];

 }
}
4

1 に答える 1

3

ドキュメントによると、はUIImagePickerControllerMediaMetadata静止画像に対してのみ有効です。

このキーは、ソース タイプが UIImagePickerControllerSourceTypeCamera に設定されているイメージ ピッカーを使用する場合にのみ有効で、静止画像にのみ適用されます。

必要なメタデータを取得するにはALAssetメタデータメソッドを使用します。

于 2013-01-22T08:39:43.283 に答える