
Swift
如何使用 Swift 中的 UIImagePickerController 录制 MP4 格式的视频
在开发移动应用程序时,有时我们需要让用户录制视频并保存在设备上。在 IOS 中,我们可以使用 UIImagePickerController 类来实现这个功能。UIImagePickerController 类提供了一个用户界面,允许用户从设备的相册或相机中选择或拍摄视频。然而,默认情况下,UIImagePickerController 类只能录制 MOV 格式的视频。如果我们需要录制 MP4 格式的视频,我们可以通过设置一些属性来实现这一点。设置 UIImagePickerController 的目标媒体类型要录制 MP4 格式的视频,我们需要设置 UIImagePickerController 的目标媒体类型为 kUTTypeMovie,并设置视频的输出格式为 MP4。下面是一个示例代码,展示了如何设置 UIImagePickerController 的属性来录制 MP4 格式的视频:Swiftimport UIKitimport MobileCoreServicesclass ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { let imagePicker = UIImagePickerController() override func viewDidLoad() { super.viewDidLoad() imagePicker.delegate = self imagePicker.sourceType = .camera imagePicker.mediaTypes = [kUTTypeMovie as String] imagePicker.vIDEOQuality = .typeMedium imagePicker.vIDEOExportPreset = AVAssetExportPresetPassthrough } @IBAction func recordVIDEO(_ sender: UIButton) { present(imagePicker, animated: true, completion: nil) } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { guard let mediaType = info[.mediaType] as? String, mediaType == kUTTypeMovie as String, let url = info[.mediaURL] as? URL else { return } // 处理视频录制完成后的操作,例如保存视频或上传到服务器 // ... dismiss(animated: true, completion: nil) } func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { dismiss(animated: true, completion: nil) }}上述代码中,我们首先创建了一个 UIImagePickerController 对象,并设置其 delegate 属性为当前的视图控制器。然后,我们设置了其 sourceType 为 .camera,这样用户就可以使用设备的相机来录制视频。接下来,我们设置了其 mediaTypes 属性为 [kUTTypeMovie as String],这样用户只能选择录制视频而不是拍照。我们还设置了视频的质量为 .typeMedium,并将 vIDEOExportPreset 属性设置为 AVAssetExportPresetPassthrough,以保持视频的原始质量。处理录制完成的视频在用户录制完成视频后,我们需要在代理方法 imagePickerController(_:didFinishPickingMediaWithInfo:) 中处理录制的视频。在这个方法中,我们首先检查录制的媒体类型是否为 kUTTypeMovie,然后获取视频的 URL。接下来,我们可以对录制的视频进行一些操作,例如保存到设备上或上传到服务器。在上述示例代码中,我们只是简单地获取了视频的 URL,并在控制台中打印了该 URL。你可以根据自己的需求来处理录制完成的视频。通过设置 UIImagePickerController 的属性,我们可以让用户录制 MP4 格式的视频。在本文中,我们学习了如何设置 UIImagePickerController 的目标媒体类型为 kUTTypeMovie,并设置视频的输出格式为 MP4。我们还看到了如何在代理方法中处理录制完成的视频。希望本文对你理解如何使用 Swift 中的 UIImagePickerController 录制 MP4 格式的视频有所帮助。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号