获取视频拍摄后的缩率图展示到拍摄页面的左下角

This commit is contained in:
bluesea 2024-04-15 15:45:47 +08:00
parent 469dddeff1
commit 8a6c0b365e
3 changed files with 65 additions and 18 deletions

View File

@ -387,8 +387,8 @@
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift" filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "1176" startingLineNumber = "1223"
endingLineNumber = "1176" endingLineNumber = "1223"
landmarkName = "compositeSpatialPhoto()" landmarkName = "compositeSpatialPhoto()"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>

View File

@ -848,29 +848,76 @@ class CCSpatialShootController: BaseController {
//MARK: - //MARK: -
func getAlbumFirstPhoto() { func getAlbumFirstPhoto() {
PHPhotoLibrary.requestAuthorization(for: .readWrite) { (status) in PHPhotoLibrary.requestAuthorization(for: .readWrite) {[weak self] (status) in
if status == PHAuthorizationStatus.authorized { if status == PHAuthorizationStatus.authorized {
let fetchOptions = PHFetchOptions() let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key:"creationDate", ascending: false)] fetchOptions.sortDescriptors = [NSSortDescriptor(key:"creationDate", ascending: false)]
let assetsFetchResults: PHFetchResult<PHAsset>! = PHAsset.fetchAssets(with: .image, options: fetchOptions) let image_assetsFetchResults: PHFetchResult<PHAsset>! = PHAsset.fetchAssets(with: .image, options: fetchOptions)
if let asset = assetsFetchResults.firstObject { let video_assetsFetchResults: PHFetchResult<PHAsset>! = PHAsset.fetchAssets(with: .video, options: fetchOptions)
let imageManager = PHCachingImageManager()
let requestOptions = PHImageRequestOptions() let imgAsset = image_assetsFetchResults.firstObject
requestOptions.isSynchronous = true let videoAsset = video_assetsFetchResults.firstObject
requestOptions.deliveryMode = .highQualityFormat var defaultAsset:PHAsset?
if let imgAsset {
defaultAsset = imgAsset
}
imageManager.requestImageDataAndOrientation(for: asset, options: requestOptions) { imageData, dataUTI, imagePropertyOrientation, info in if let videoAsset{
if let imageData = imageData { if let temp = defaultAsset {
DispatchQueue.main.async { if (videoAsset.creationDate ?? Date.now > imgAsset?.creationDate ?? Date.now) {
self.albumButton.setBackgroundImage(UIImage(data: imageData), for: .normal) defaultAsset = videoAsset
}
} }
} }
else {
defaultAsset = videoAsset
}
}
if let defaultAsset {
self?.getImageFromAsset(asset: defaultAsset)
}
// if let asset = image_assetsFetchResults.firstObject {
// let imageManager = PHCachingImageManager()
//
// let requestOptions = PHImageRequestOptions()
// requestOptions.isSynchronous = true
// requestOptions.deliveryMode = .highQualityFormat
//
// imageManager.requestImageDataAndOrientation(for: asset, options: requestOptions) { imageData, dataUTI, imagePropertyOrientation, info in
// if let imageData = imageData {
// DispatchQueue.main.async {
// self.albumButton.setBackgroundImage(UIImage(data: imageData), for: .normal)
// }
// }
// else {
// print(".....")
// }
// }
// }
// else {
// print("22222.....")
// }
}
}
}
func getImageFromAsset(asset:PHAsset){
//
let requestOptions = PHImageRequestOptions()
requestOptions.isSynchronous = false//
requestOptions.deliveryMode = .highQualityFormat
PHImageManager.default().requestImageDataAndOrientation(for: asset, options: requestOptions) {[weak self] data, dataUTI, imagePropertyOrientation, info in
if let hasData = data {
DispatchQueue.main.async {
self?.albumButton.setBackgroundImage(UIImage(data: hasData), for: .normal)
} }
} }
} }
} }
@ -1070,10 +1117,10 @@ extension CCSpatialShootController: AVCaptureFileOutputRecordingDelegate {
private func saveVideoToLibrary(videoURL: URL) { private func saveVideoToLibrary(videoURL: URL) {
PHPhotoLibrary.shared().performChanges({ PHPhotoLibrary.shared().performChanges({
PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: videoURL) PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: videoURL)
}) { success, error in }) {[weak self] success, error in
if success { if success {
print("保存成功") print("保存成功")
// self?.getAlbumFirstPhoto() self?.getAlbumFirstPhoto()
} else if let error = error { } else if let error = error {
print("保存失败") print("保存失败")
} }