MediaPickerController 2.0.0

MediaPickerController 2.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最近发布2016年9月
SPM支持 SPM

Pablo Villar 维护。




MediaPickerController

用于在设备或相机中挑选图片或视频的古典操作表的动作轻量级API。


screenshot1

概述

我们知道,在大多数 iOS 应用中,展示用于挑选媒体的著名操作表是很常见的。然而,实现该功能通常需要您编写大量样板代码,在这个过程中,您很可能遇到糟糕的事情(比如 kUTTypeImageinfo[UIImagePickerControllerOriginalImage],仅举几例)。

MediaPickerController 在您的 UIViewController 实例与iOS原生API(由 AVFoundationMobileCoreServices 提供)处理媒体挑选之间充当一层。

通过使用此类,您不必担心编写上述样板代码;此类会为您在内部处理所有这些,提供清洁且优雅的API,您只需几行代码即可在您的 UIViewController 中使用。

功能

  • 允许两种模式:拍照,或拍照或录制视频。
  • 在挑选图片时,您可以直接获得 UIImage 对象。
  • 在挑选视频时,您将获得代表视频的 NSData,以及在设备上分配的 NSURL,以及代表视频缩略图预览的 UIImage 对象。
  • 自动检测设备功能:当设备没有相机时,从相机拍照的操作表选项会自动禁用(不显示)。

用法

您只需要关注四个简单的事情

  • 初始化一个 MediaPickerController 对象。
  • 将其 delegate 设置为您的 UIViewController 类。
  • 在您想要挑选媒体时调用 show() 方法。
  • 遵守 MediaPickerControllerDelegate 协议,并在它提供的方法中使用结果。

示例

以下是随着项目一起提供的示例 ViewController 类:

class ViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var statusLabel: UILabel!

    var mediaPickerController: MediaPickerController!

    // MARK: - Lifecycle

    override func viewDidLoad() {
        super.viewDidLoad()
        self.mediaPickerController = MediaPickerController(type: .imageAndVideo, presentingViewController: self)
        self.mediaPickerController.delegate = self
    }

    // MARK: - IBAction

    @IBAction func pickMedia(_ sender: UIBarButtonItem) {
        self.mediaPickerController.show()
    }

}

extension ViewController: MediaPickerControllerDelegate {

    func mediaPickerControllerDidPickImage(_ image: UIImage) {
        self.statusLabel.text = "Picked Image\nPreview:"
        self.imageView.image = image
    }

    func mediaPickerControllerDidPickVideo(url: URL, data: Data, thumbnail: UIImage) {
        self.statusLabel.text = "Picked Video\nURL in device: \(url.absoluteString)\nThumbnail Preview:"
        self.imageView.image = thumbnail
    }

}

设置

您可以直接克隆仓库并将 MediaPickerController 文件夹复制到您的项目,或者通过 CocoaPods 安装以保持最新。

旧版本支持

  • 从 2.0.0 版本开始,此库与 Swift 3.0 兼容。
  • 如果您需要查找对旧语言版本的兼容支持,可以查看:
    • 1.1.0 版本支持 Swift 2.3。
    • 1.0.2 版本支持 Swift 2.2。

联系我们

有关此库使用的 问题一般意见,请使用我们的公开 HipChat 房间

如果您在使用此库时发现任何 错误 或问题,请在此仓库(或拉取请求)中 提交问题

您还可以在我们的 inaka.github.io 查看所有开源项目。