Swift - 如何使用 UIImagePickerController 录制 MP4 格式的视频

swift

1个回答

写回答

晨曦的太阳

2025-09-05 09:55

+ 关注

Swift
Swift

如何使用 Swift 中的 UIImagePickerController 录制 MP4 格式的视频

在开发移动应用程序时,有时我们需要让用户录制视频并保存在设备上。在 IOS 中,我们可以使用 UIImagePickerController 类来实现这个功能。UIImagePickerController 类提供了一个用户界面,允许用户从设备的相册或相机中选择或拍摄视频。然而,默认情况下,UIImagePickerController 类只能录制 MOV 格式的视频。如果我们需要录制 MP4 格式的视频,我们可以通过设置一些属性来实现这一点。

设置 UIImagePickerController 的目标媒体类型

要录制 MP4 格式的视频,我们需要设置 UIImagePickerController 的目标媒体类型为 kUTTypeMovie,并设置视频的输出格式为 MP4。

下面是一个示例代码,展示了如何设置 UIImagePickerController 的属性来录制 MP4 格式的视频:

Swift

import UIKit

import MobileCoreServices

class 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 格式的视频有所帮助。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号