SwiftUI报错:AVCapturePhoto类型无livePhotoMovieFileURL成员
问题分析
你尝试实现实况照片存入相册的功能,但代码报错:
Value of type 'AVCapturePhoto' has no member 'livePhotoMovieFileURL'
错误原因很明确:AVCapturePhoto 类并没有 livePhotoMovieFileURL 这个属性,你用错了属性名称。
解决方案
要获取实况照片对应的视频文件URL,应使用 AVCapturePhoto 提供的 livePhotoCompanionMovieURL 属性。修改代码中的对应部分即可:
try await PHPhotoLibrary.shared().performChanges { let creationRequest = PHAssetCreationRequest.forAsset() creationRequest.addResource(with: .photo, data: imageData, options: nil) // 添加实况照片视频(如果可用) if self.isLiveModeEnabled, let movieURL = photo.livePhotoCompanionMovieURL { // 替换为正确的属性名 print("Adding live photo video data") let options = PHAssetResourceCreationOptions() options.shouldMoveFile = true creationRequest.addResource(with: .pairedVideo, fileURL: movieURL, options: options) } }
额外注意点
- 拍摄前需确保开启实况模式:创建
AVCapturePhotoSettings时,要设置isLivePhotoEnabled = true,否则livePhotoCompanionMovieURL会返回空值。 - 开启
shouldMoveFile = true后,系统会自动将视频文件移动到相册目录,无需手动删除原文件。
内容的提问来源于stack exchange,提问作者Runcong Wu
相关产品推荐
相关产品推荐

