【问题标题】:Check if fetched object is Image or Video in Swift检查获取的对象是 Swift 中的图像还是视频
【发布时间】:2016-12-01 08:07:06
【问题描述】:

我想检查 latestObject 是什么类型。这是一些代码:

allMedia = PHAsset.fetchAssetsWithOptions(fetchOptions)
let allPhotos = PHAsset.fetchAssetsWithMediaType(.Image, options: fetchOptions)
let allVideo = PHAsset.fetchAssetsWithMediaType(.Video, options: fetchOptions)
print("Found \(allMedia.count) media")
print("Found \(allPhotos.count) images")
print("Found \(allVideo.count) videos")

let latestObject: AnyObject! = allMedia.lastObject

// How to check what type latestObject is?
// I think something with mediaType but how is it exactly going?

【问题讨论】:

标签: ios swift phasset


【解决方案1】:

你有没有尝试过这样的事情:

if let asset = allMedia.lastObject as? PHAsset {
    switch asset.mediaType {
    case .Image:
        print("Image")
    case .Video:
        print("Video")
    case .Audio:
        print("Audio")
    default:
        print("Unknown")
    }
}

PHFetchResult 中包含的每个元素都是一个PHAsset(在这种情况下)。 因此,通过转换为PHAsset,您可以访问属性mediaType

【讨论】:

    【解决方案2】:
    You can check it in UIImagePickerController delegate method 
    
    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    
      if((info["UIImagePickerControllerMediaType"] as! String) == "public.movie" ){
        // Video file
      }
      else{
        // Image
      } 
    }
    

    【讨论】:

    • 我不使用 UIImagePickerController
    猜你喜欢
    • 2013-07-11
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 2017-07-13
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    相关资源
    最近更新 更多