diff --git a/SwiftProject/Pods/LLCycleScrollView/Lib/LLCycleScrollView/LLCycleScrollView.swift b/SwiftProject/Pods/LLCycleScrollView/Lib/LLCycleScrollView/LLCycleScrollView.swift index cefb912..d3bfb5e 100644 --- a/SwiftProject/Pods/LLCycleScrollView/Lib/LLCycleScrollView/LLCycleScrollView.swift +++ b/SwiftProject/Pods/LLCycleScrollView/Lib/LLCycleScrollView/LLCycleScrollView.swift @@ -623,7 +623,7 @@ extension LLCycleScrollView { case.right: customPageControl?.frame = CGRect.init(x: UIScreen.main.bounds.width - (oldFrame?.size.width)! - pageControlLeadingOrTrialingContact * 0.5, y: y, width: (oldFrame?.size.width)!, height: 10) default: - customPageControl?.frame = CGRect.init(x: (oldFrame?.origin.x)!, y: y, width: (oldFrame?.size.width)!, height: 10) + customPageControl?.frame = CGRect.init(x: (self.bounds.width - (oldFrame?.size.width)!)*0.5, y: y, width: (oldFrame?.size.width)!, height: 10) } } diff --git a/SwiftProject/SwiftProject.xcodeproj/project.pbxproj b/SwiftProject/SwiftProject.xcodeproj/project.pbxproj index b3bf936..68d8aad 100644 --- a/SwiftProject/SwiftProject.xcodeproj/project.pbxproj +++ b/SwiftProject/SwiftProject.xcodeproj/project.pbxproj @@ -857,7 +857,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1.5; + CURRENT_PROJECT_VERSION = 1.7; DEVELOPMENT_TEAM = 8DQD6BV6H9; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = SwiftProject/Info.plist; @@ -898,7 +898,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1.5; + CURRENT_PROJECT_VERSION = 1.7; DEVELOPMENT_TEAM = 8DQD6BV6H9; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = SwiftProject/Info.plist; diff --git a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate index b9dfeb1..04b103e 100644 Binary files a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate and b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index b8b310e..180f345 100644 --- a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -14,8 +14,8 @@ filePath = "SwiftProject/Project/Controller/CCHomeController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "515" - endingLineNumber = "515" + startingLineNumber = "495" + endingLineNumber = "495" landmarkName = "CCHomeController" landmarkType = "21"> @@ -30,8 +30,8 @@ filePath = "SwiftProject/Project/Controller/CCHomeController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "507" - endingLineNumber = "507" + startingLineNumber = "487" + endingLineNumber = "487" landmarkName = "photoLibrary()" landmarkType = "7"> @@ -84,38 +84,6 @@ - - - - - - - - @@ -637,5 +605,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SwiftProject/SwiftProject/Project/Controller/CCHomeController.swift b/SwiftProject/SwiftProject/Project/Controller/CCHomeController.swift index 72eef28..eb57719 100644 --- a/SwiftProject/SwiftProject/Project/Controller/CCHomeController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/CCHomeController.swift @@ -66,25 +66,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV self.checkAirPlayStatus() } -// func isExternalDeviceConnected() -> Bool { -// let screens = UIScreen.screens -// -// // 如果屏幕数量大于1,则至少连接了一个外部设备 -// if screens.count > 1 { -// return true -// } -// -// // 检查每个屏幕是否是外部屏幕 -// for screen in screens { -// if !screen.isEqual(UIScreen.main) { -// return true -// } -// } -// -// // 没有连接外部设备 -// return false -// } - + override func viewDidLoad() { super.viewDidLoad() @@ -184,7 +166,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV //345*200 cycleScrollView = LLCycleScrollView() - cycleScrollView?.frame = CGRect.init(x: 24, y: Int(SafeAreaTop_Height) + 35, width: Int(SCREEN_Width) - 48, height: (Int(SCREEN_Width) - 48) * 200/345) + cycleScrollView?.frame = CGRect.init(x: 24, y: Int(SafeAreaTop_Height) + 35, width: Int(SCREEN_Width)-48 , height: (Int(SCREEN_Width) - 48) * 200/345) cycleScrollView!.delegate = self // 是否自动滚动 cycleScrollView!.autoScroll = true @@ -214,6 +196,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV // 添加到view self.view.addSubview(cycleScrollView!) + // 图片获取 cycleScrollView!.imagePaths = ["Banner_01","Banner_02","Banner_03"] @@ -243,7 +226,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV //滚动切换文本显示 func cycleScrollView(_ cycleScrollView: LLCycleScrollView, scrollTo index: NSInteger) { - print("当前页面索引:\(index)") +// print("当前页面索引:\(index)") let arr1 = ["Tips.1 拍摄空间照片以及视频","Tips.2 视频转码","Tips.3 直连VR设备"] let arr2 = ["一键拍摄空间格式的照片以及视频,留住美好瞬间", "可以将任意格式视频转码为 VR 或 3D 格式", @@ -448,10 +431,7 @@ extension CCHomeController: TZImagePickerControllerDelegate,UINavigationControll func spaceAlbum() { KWindow?.addSubview(spaceAlbumPopView) spaceAlbumPopView.show() - - - - + //选择图片 spaceAlbumPopView.selectedImageHandler = { [self] data,asset in gotoPhotoTransformVC(data: data, url: nil,asset: asset) diff --git a/SwiftProject/SwiftProject/Project/Util/SpatialVideoWriter.swift b/SwiftProject/SwiftProject/Project/Util/SpatialVideoWriter.swift index e295240..ab60932 100644 --- a/SwiftProject/SwiftProject/Project/Util/SpatialVideoWriter.swift +++ b/SwiftProject/SwiftProject/Project/Util/SpatialVideoWriter.swift @@ -56,22 +56,36 @@ class SpatialVideoWriter { //附加视频标记元数据信息 let metadataItem_1 = AVMutableMetadataItem() - metadataItem_1.identifier = .quickTimeMetadataDescription + metadataItem_1.identifier = .quickTimeMetadataSpatialOverCaptureQualityScoringVersion metadataItem_1.dataType = kCMMetadataDataType_QuickTimeMetadataDirection as String metadataItem_1.value = String("ff") as (NSCopying & NSObjectProtocol) + metadataItem_1.extraAttributes = [.info:"vpexport"] +// let metadataItem_2 = AVMutableMetadataItem() +// metadataItem_2.identifier = .quickTimeMetadataSpatialOverCaptureQualityScoringVersion +// metadataItem_2.dataType = kCMMetadataDataType_QuickTimeMetadataDirection as String +// metadataItem_2.value = String("ff") as (NSCopying & NSObjectProtocol) +// metadataItem_2.extraAttributes = [.info:"vpexport"] - let metadataItem_2 = AVMutableMetadataItem() - metadataItem_2.identifier = .quickTimeMetadataInformation - metadataItem_2.dataType = kCMMetadataDataType_QuickTimeMetadataDirection as String - metadataItem_2.value = String("ff") as (NSCopying & NSObjectProtocol) +// let atmg:AVMutableTimedMetadataGroup = AVMutableTimedMetadataGroup(items: [metadataItem_1,metadataItem_2], timeRange: CMTimeRange(start: .zero, duration: .positiveInfinity)) +// let desc:CMMetadataFormatDescription? = atmg.copyFormatDescription() +// let asaArray = AVOutputSettingsAssistant.availableOutputSettingsPresets() +// asaArray.forEach { preset in +// var asa = AVOutputSettingsAssistant(preset: preset) +// print("asa:\n\(asa?.videoSettings) \n\(asa?.audioSettings)\n") +// } +// +// let input_metadata = AVAssetWriterInput.init(mediaType: .metadata, outputSettings: nil, sourceFormatHint: desc) +//// let input_metadata = AVAssetWriterInput.init(mediaType: .metadata, outputSettings: nil) +// let metadataAdaptor = AVAssetWriterInputMetadataAdaptor(assetWriterInput: input_metadata) +// if assetWriter.canAdd(input_metadata) { +// assetWriter.add(input_metadata) +// } +// else { +// print("assetwriter can't add input_metadata....") +// } - - let atmg:AVMutableTimedMetadataGroup = AVMutableTimedMetadataGroup(items: [metadataItem_1,metadataItem_2], timeRange: CMTimeRange(start: .zero, duration: .positiveInfinity)) - let desc:CMMetadataFormatDescription? = atmg.copyFormatDescription() - let input_metadata = AVAssetWriterInput.init(mediaType: .metadata, outputSettings: nil, sourceFormatHint: desc) - let metadataAdaptor = AVAssetWriterInputMetadataAdaptor(assetWriterInput: input_metadata) - assetWriter.add(input_metadata) + assetWriter.metadata = [metadataItem_1] @@ -185,9 +199,9 @@ class SpatialVideoWriter { self.addAudio(assetTrackOutput: output_audio_left, audio_input: writerInput_Audio_left) //附加元素据 - let appendATMGResult = metadataAdaptor.append(atmg) - - print("atmg result:\(appendATMGResult)") +// let appendATMGResult = metadataAdaptor.append(atmg) +// +// print("atmg result:\(appendATMGResult)") // 完成写入 print("完成写入") diff --git a/SwiftProject/SwiftProject/Project/Util/ZZHHelper.swift b/SwiftProject/SwiftProject/Project/Util/ZZHHelper.swift index 7b84ac0..c474479 100644 --- a/SwiftProject/SwiftProject/Project/Util/ZZHHelper.swift +++ b/SwiftProject/SwiftProject/Project/Util/ZZHHelper.swift @@ -41,10 +41,7 @@ class ZZHHelper { // if track.mediaType == .video { // for formatDesc in track.formatDescriptions { // let dic = CMFormatDescriptionGetExtensions(formatDesc as! CMFormatDescription) as! Dictionary -// let fromatName = dic["FormatName"] as? String -// if let fn = fromatName,fn == "HEVC"{ -// return true -// } +// print("fromatdesc:\n\(dic)\n\n") // } // } // } @@ -53,8 +50,9 @@ class ZZHHelper { let metadata = asset.metadata(forFormat: AVMetadataFormat.quickTimeMetadata) let isSpatialVideo = metadata.contains { item in + print("item:\n\(item) \n\n\n") if let identifier = item.identifier?.rawValue { - return identifier == "mdta/com.apple.quicktime.spatial.format-version" + return (identifier == "mdta/com.apple.quicktime.spatial.format-version") || (identifier == "mdta/com.apple.quicktime.spatial-overcapture.quality-scoring-version") } return false }