【问题标题】:Select Video Instead of Image using ImagePickerController - Swift使用 ImagePickerController 选择视频而不是图像 - Swift
【发布时间】:2020-12-10 02:05:38
【问题描述】:

我的情况是我有一个工作的 imagepickercontroller,它允许用户从他们的相机胶卷中选择一个图像并将其显示在应用程序内的 imageview 上。

问题是我也希望能够对视频做同样的事情,而是在 avplayer 上显示视频。我做了一些研究,但找不到任何好的来源。

有人可以告诉我怎么做吗?可能通过编辑下面的代码?

提前致谢!

这是我用于从 cameraroll 导入和显示图像的代码(都在 viewDidLoad() 之上):

@IBOutlet weak var imageView: UIImageView!

// the image picker controller
var imagePicker = UIImagePickerController()

// this is the button you tap to import your photo
@IBAction func imageViewButtonTapped(_ sender: Any) {
  
    if UIImagePickerController.isSourceTypeAvailable(.savedPhotosAlbum) {
        
        imagePicker.delegate = self
        imagePicker.allowsEditing = true
        
        present(imagePicker, animated: true, completion: nil)

    }
}
    

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    
    var selectedImageFromPicker: UIImage?
    
    if let editedImage = info[.editedImage] as? UIImage{
        selectedImageFromPicker = editedImage
    }else if let originalImage = info[.originalImage] as? UIImage{
        selectedImageFromPicker = originalImage
    }
    
    if let selectedImage = selectedImageFromPicker {
        imageView.image = selectedImage
    }
    
    dismiss(animated: true, completion: nil)
}

【问题讨论】:

    标签: swift xcode video uiimagepickercontroller uiimagepickercontrollermediatype


    【解决方案1】:

    试试这个:

    import AVFoundation
    
    class VideoHelper {
        
        static func startMediaBrowser(delegate: UIViewController & UINavigationControllerDelegate & UIImagePickerControllerDelegate, sourceType: UIImagePickerController.SourceType) {
            guard UIImagePickerController.isSourceTypeAvailable(sourceType) else { return }
            
            let mediaUI = UIImagePickerController()
            mediaUI.sourceType = sourceType
            mediaUI.mediaTypes = [kUTTypeMovie as String]
            mediaUI.allowsEditing = true
            mediaUI.delegate = delegate
            delegate.present(mediaUI, animated: true, completion: nil)
        }
    }
    

    您可以将其用作:

    let source = UIImagePickerController.isSourceTypeAvailable(UIImagePickerController.SourceType.camera) ? UIImagePickerController.SourceType.camera : UIImagePickerController.SourceType.savedPhotosAlbum
            VideoHelper.startMediaBrowser(delegate: self, sourceType: source)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 2011-08-21
      • 2020-01-09
      • 2013-01-23
      • 2016-08-21
      相关资源
      最近更新 更多