在iOS平台上,AVProMovieCapture 类试图使用 OutputPath.RelativeToVideos 这种路径相对策略来存储捕获的视频,但这并不被支持。怎么修改这个获取功能
时间: 2024-10-19 08:08:29 浏览: 16
AVPro Movie Capture - Ultra Edition 5.0.5
在iOS平台的AVFoundation框架中,如果你尝试使用`AVProMovieCapture`类的`OutputPath.RelativeToMovies`或`RelativeToVideos`路径策略来存储录制的视频,并发现它们不受支持,可能是因为这两种策略不是苹果官方推荐的或者在某些系统版本中不可用。通常,建议使用绝对路径或`NSSearchPathForDirectoriesInDomains`来指定一个固定的或相对的、系统允许的文件保存位置。
为了解决这个问题,你可以这样做:
1. **使用绝对路径**:
```swift
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let outputPath = documentsDirectory.appendingPathComponent("Recordings").appendingPathComponent("myVideo.mp4")
```
这样可以创建一个位于Documents目录下的 Recordings 文件夹内的视频文件。
2. **使用相对路径结合固定前缀**:
```swift
let outputFolder = "Recordings"
let movieFilename = "myVideo.mp4"
let outputPath = NSTemporaryDirectory().appending(outputFolder).appendingPathComponent(movieFilename)
```
使用`NSTemporaryDirectory()`函数获取临时文件夹,然后追加你想要的文件夹名和文件名。
3. **利用`FileManager`的搜索路径**:
```swift
let videoURL = FileManager.default.urls(for: .videoLibraryDirectory, in: .userDomainMask)[0]
let outputPath = videoURL.appendingPathComponent("myVideo.mp4")
```
确保在写入文件之前,先检查目标路径是否可写,如果需要跨应用访问,还需要确保遵循适当的权限规则。
阅读全文