除了播放视频和音频之外,iOS和OS X还允许访问内置的相机系统来采集视频和音频。
然而,这两个系统用于访问相机的API是不同的。
要在iOS上从相机采集视频和照片,可以使用一个名为UIImagePickerController的视图控制器。
简言之,UIImagePickerController允许我们呈现一个几乎与iPhone内置相机应用程序完全相同的界面。应用这一个界面,用户可以获取照片,将它作为一个UIImage对象提供给你的应用程序。
还可以配置UIImagePickerController以采集视频。
可以对UIImagePickerController进行设置,用以控制使用哪个相机(前置或后置),闪光灯是否可用,是否允许用户裁剪拍摄的照片等等。
我们可以使用UIImagePickerController来判断有哪些功能可供使用,并相应调整app的行为。例如,要判断是否有任何类型的相机可用:
// 判断哪些类型的相机可用 let sourceType = UIImagePickerControllerSourceType.Camera if(UIImagePickerController.isSourceTypeAvailable(sourceType)){ // 可以使用相机 }else{ // 不可以使用相机 }
还可以进一步指定是否有前置或者后置相机可用。
// 前置还是后置相机 let frontCamera = UIImagePickerControllerCameraDevice.Front let rearCamera = UIImagePickerControllerCameraDevice.Rear if(UIImagePickerController.isCameraDeviceAvailable(frontCamera)){ // 前置相机可用 } if(UIImagePickerController.isCameraDeviceAvailable(rearCamera)){ // 后置相机可用 }
下面的代码是一个简单的应用程序,它将可以显示用户拍摄的照片。注意,该应用程序如果运行在模拟器上,将会无法看到照片。因为模拟器上木有真正的相机设备。
class VIEwController: UIVIEwController,UIImagePickerControllerDelegate,UINavigationControllerDelegate{ @IBAction func takePhotos(sender: AnyObject) { let picker = UIImagePickerController() // 判断哪些类型的相机可用 let sourceType = UIImagePickerControllerSourceType.Camera if(UIImagePickerController.isSourceTypeAvailable(sourceType)){ picker.sourceType = UIImagePickerControllerSourceType.Camera // 前置还是后置相机 let frontCamera = UIImagePickerControllerCameraDevice.Front let rearCamera = UIImagePickerControllerCameraDevice.Rear if(UIImagePickerController.isCameraDeviceAvailable(frontCamera)){ // 前置相机可用,使用前置相机 picker.cameraDevice = frontCamera }else{ // 使用后置相机 picker.cameraDevice = rearCamera } picker.delegate = self self.presentVIEwController(picker,animated: true,completion: { () -> VoID in // nil }) } } @IBOutlet weak var imageVIEw: UIImageVIEw! func imagePickerController(picker: UIImagePickerController,dIDFinishPickingMediawithInfo info: [String : AnyObject]) { let image:UIImage = info[UIImagePickerControllerOriginalimage] as! UIImage self.imageVIEw.image = image picker.dismissVIEwControllerAnimated(true,completion: nil) } func imagePickerControllerDIDCancel(picker: UIImagePickerController) { picker.dismissVIEwControllerAnimated(true,completion: nil) }}总结
以上是内存溢出为你收集整理的swift 快速奔跑的兔几 本节的内容是:使用照片库全部内容,希望文章能够帮你解决swift 快速奔跑的兔几 本节的内容是:使用照片库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)