【问题标题】:Get original video name as selected from UIImagePickerController获取从 UIImagePickerController 中选择的原始视频名称
【发布时间】:2016-05-23 05:56:31
【问题描述】:

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

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

【问题讨论】:

  • 用相关代码更新您的问题。
  • 您将获得网址。从中您可以轻松获取我认为的名称。图片和视频的网址会有所不同。
  • @Wolverine:我正在获取所选视频资产的此 url-library://asset/asset.MOV?id=1489CFE5-A447-456E-A641-DC44818C1D44&ext=MOV 现在我将如何检索这里的名字。
  • 在这种情况下.. 这可能会帮助你stackoverflow.com/questions/5048640/…

标签: ios objective-c iphone uiimagepickercontroller


【解决方案1】:
     - (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);
    }

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

【讨论】:

  • 我得到的视频文件名称为“69DF7DDF-1D8B-414B-8F2D-2E6BB1E537EB.MOV”... 名称会这样吗?
  • 是的。 @RohitaxRajguru
  • 它的默认名称,但如果您愿意,可以根据您的要求替换它。@RohitaxRajguru
  • 我认为您可以获得视频文件的名称,因此您的问题得到了解答。您能否接受答案,以便对其他人有所帮助。 @RohitaxRajguru
  • 感谢您的努力。
【解决方案2】:

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

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
}

【讨论】:

    【解决方案3】:

    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

    【讨论】:

    • XXX_00256.jpeg 应该是什么?请edit你的答案。
    • 如果你想给我们看图片,那么你需要提供一个链接,而不仅仅是名字。
    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多