测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可协议 | MIT |
发布最新版本 | 2017年5月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Rui Costa 和 Shai Mishali 维护。
RxMediaPicker 是一个围绕 UIImagePickerController 构建的 RxSwift 封装,提供了一种简单的接口来执行像选择设备上存储的照片或视频、录制视频或拍照等常用操作。
如果您曾经使用过 UIImagePickerController,您知道它如何变得相当冗长并引入一些不必要的复杂度,因为您使用同一类来执行所有操作,从从库中选择照片或视频,录制视频等。同时,您有所有这些不同的属性和方法,当您处理照片时可以使用,其他用于处理视频,还有其他在所有情况下都适用。
如果您感兴趣,请查看生成的文章 RxMediaPicker —— 用酷孩子的方式选择照片和视频!
注意:由于 RxMediaPicker 还处于初级阶段,界面可能在未来的版本中更改。
对于更完整的示例,请查看包含的示例应用程序(最好在设备上运行)。以下是使用相机录制视频的方法
import RxMediaPicker
import RxSwift
var picker: RxMediaPicker!
let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
picker = RxMediaPicker(delegate: self)
}
func recordVideo() {
picker.recordVideo(maximumDuration: 10, editable: true)
.observeOn(MainScheduler.instance)
.subscribe(onNext: { url in
// Do something with the video url obtained!
}, onError: { error in
print("Error occurred!")
}, onCompleted: {
print("Completed")
}, onDisposed: {
print("Disposed")
})
.addDisposableTo(disposeBag)
}
基于它们的名称,RxMediaPicker 上可用的操作应该是自解释的。您可以录制视频,或者选择设备上存储的现有视频,同样对于照片也是如此。需要注意的是,选择视频会为您提供视频 URL,而选择照片会为您提供原始图像和一个可选的已编辑图像(如果进行了编辑)的元组。
func recordVideo(device device: UIImagePickerControllerCameraDevice = .Rear,
quality: UIImagePickerControllerQualityType = .TypeMedium,
maximumDuration: NSTimeInterval = 600, editable: Bool = false) -> Observable<NSURL>
func selectVideo(source: UIImagePickerControllerSourceType = .PhotoLibrary,
maximumDuration: NSTimeInterval = 600, editable: Bool = false) -> Observable<NSURL>
func takePhoto(device device: UIImagePickerControllerCameraDevice = .Rear,
flashMode: UIImagePickerControllerCameraFlashMode = .Auto,
editable: Bool = false) -> Observable<(UIImage, UIImage?)>
func selectImage(source: UIImagePickerControllerSourceType = .PhotoLibrary,
editable: Bool = false) -> Observable<(UIImage, UIImage?)>
func presentPicker(picker: UIImagePickerController)
func dismissPicker(picker: UIImagePickerController)
要使用RxMediaPicker,您需要采用RxMediaPickerDelegate协议。这是必需的,以便通知RxMediaPicker如何显示相机/照片选择器。例如,您可能希望在iPad上以弹出窗口的形式显示照片库选择器,而在iPhone上使用整个屏幕。
由Rui Costa(@ruipfcosta)拥有并维护。
欢迎提交报错和pull请求。
RxMediaPicker遵循MIT许可协议。请参阅LICENSE文件以获取详细信息。