获取从UIImagePickerController中选择的原始视频名称

问题描述 投票:0回答:3

如何在UIImagePickerController的委托方法中获取从相机胶卷或任何其他相册中选择的视频文件的名称?

我能够获得图像的名称,但如果在视频中使用相同的图像则返回nil

ios objective-c iphone uiimagepickercontroller
3个回答
0
投票
     - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

        NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

            if (![mediaType isEqualToString:(NSString *)kUTTypeMovie])
                return;

            mediaURl = [info objectForKey:UIImagePickerControllerMediaURL];

            //NSLog(@"mediaURL %@",mediaURl);
            moviePath = mediaURl.absoluteString;
            //  NSLog(@"moviePath %@",moviePath);
            tempFilePath = [[info objectForKey:UIImagePickerControllerMediaURL] path];
            NSLog(@"filepath %@",tempFilePath);
            //if you want only file name
            NSArray *ar = [tempFilePath componentsSeparatedByString:@"/"];
            NSString *filename = [[ar lastObject] uppercaseString];
            NSLog(@"filename %@",filename);
    }

如果您有任何问题,请告诉我


0
投票

我知道这个帖子超级老了,但我想如果有人发现它,这里是一个快速的工作答案:

func fileName(for infoDict: [String : Any]) -> String? {
    guard let referenceURL = infoDict[UIImagePickerControllerReferenceURL] as? URL else { return nil }
    let result = PHAsset.fetchAssets(withALAssetURLs: [referenceURL], options: nil)
    guard let asset = result.firstObject else { return nil }
    let firstResource = PHAssetResource.assetResources(for: asset).first
    return firstResource?.originalFilename ?? asset.value(forKey: "filename") as? String
}

0
投票

Swift 4或更高版本在我的身边工作以获取捕获的图像

使用 :

    imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]){
            let fileName = FileInfo.getMediaName(info: info)
      }

class:请求放置方法info [:]

class FileInfo {
    // Return Media name
    static func getMediaName(info:[String : Any]) -> String {

        if let asset = info[UIImagePickerControllerPHAsset] as? PHAsset {
            let assetResources = PHAssetResource.assetResources(for: asset)
            let firstObj = assetResources.first?.originalFilename as! NSString
            print(firstObj)
            return firstObj
        }
    }
}

// IMG_02256.jpeg

© www.soinside.com 2019 - 2024. All rights reserved.