修改图片投屏时外屏设备模式切换导致视图错乱的问题

This commit is contained in:
bluesea 2024-03-27 14:22:17 +08:00
parent 63fa9d846e
commit 8481f8988a
17 changed files with 630 additions and 352 deletions

View File

@ -6401,6 +6401,10 @@
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"COCOAPODS=1",
);
INFOPLIST_FILE = "Target Support Files/SVProgressHUD/SVProgressHUD-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
@ -7461,6 +7465,10 @@
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"COCOAPODS=1",
);
INFOPLIST_FILE = "Target Support Files/SVProgressHUD/SVProgressHUD-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;

View File

@ -635,7 +635,8 @@ static const CGFloat SVProgressHUDLabelSpacing = 8.0f;
double animationDuration = 0.0;
#if !defined(SV_APP_EXTENSIONS) && TARGET_OS_IOS
self.frame = [[[UIApplication sharedApplication] delegate] window].bounds;
// self.frame = [[[UIApplication sharedApplication] delegate] window].bounds;
self.frame = [UIApplication sharedApplication].keyWindow.bounds;
UIInterfaceOrientation orientation = UIApplication.sharedApplication.statusBarOrientation;
#elif !defined(SV_APP_EXTENSIONS) && !TARGET_OS_IOS
self.frame= [UIApplication sharedApplication].keyWindow.bounds;

View File

@ -12,6 +12,10 @@
009661F82BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009661F72BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift */; };
009661FA2BAD876200FCA65F /* PhotosUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 009661F92BAD876200FCA65F /* PhotosUI.framework */; };
009661FC2BADB20D00FCA65F /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 009661FB2BADB20D00FCA65F /* CoreMotion.framework */; };
009662442BB2B93C00FCA65F /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662432BB2B93C00FCA65F /* SceneDelegate.swift */; };
009662462BB3B39900FCA65F /* External.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 009662452BB3B39900FCA65F /* External.storyboard */; };
0096624A2BB3B45200FCA65F /* ExternalSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */; };
0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */; };
00B946232B67B26D00DA668F /* ddd_video.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 00B946222B67B26D00DA668F /* ddd_video.mp4 */; };
00B946252B67B7DE00DA668F /* CCSpatialPlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */; };
00C665732BAA81F900C309C3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C665722BAA81F900C309C3 /* GoogleService-Info.plist */; };
@ -102,6 +106,10 @@
009661F72BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpaceAlbumFilterPopView2.swift; sourceTree = "<group>"; };
009661F92BAD876200FCA65F /* PhotosUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PhotosUI.framework; path = System/Library/Frameworks/PhotosUI.framework; sourceTree = SDKROOT; };
009661FB2BADB20D00FCA65F /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
009662432BB2B93C00FCA65F /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
009662452BB3B39900FCA65F /* External.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = External.storyboard; sourceTree = "<group>"; };
009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalSceneDelegate.swift; sourceTree = "<group>"; };
0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZZHExternalViewController.swift; sourceTree = "<group>"; };
00B946222B67B26D00DA668F /* ddd_video.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = ddd_video.mp4; sourceTree = "<group>"; };
00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpatialPlayView.swift; sourceTree = "<group>"; };
00C665722BAA81F900C309C3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
@ -209,6 +217,16 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
0096624B2BB3BA0100FCA65F /* ExternalScreen */ = {
isa = PBXGroup;
children = (
009662452BB3B39900FCA65F /* External.storyboard */,
009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */,
0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */,
);
path = ExternalScreen;
sourceTree = "<group>";
};
1E02C9302B89909000DD3143 /* DeviceOperation */ = {
isa = PBXGroup;
children = (
@ -359,6 +377,8 @@
AF2120A12B4E83AF00400B7F /* CCKit */,
AF2120A62B4E83B000400B7F /* Project */,
AF21208D2B4E7F1A00400B7F /* AppDelegate.swift */,
0096624B2BB3BA0100FCA65F /* ExternalScreen */,
009662432BB2B93C00FCA65F /* SceneDelegate.swift */,
00C665772BAA941E00C309C3 /* CopyCrashHandler.swift */,
AF2120932B4E7F1A00400B7F /* Main.storyboard */,
AF2120962B4E7F1C00400B7F /* Assets.xcassets */,
@ -577,6 +597,7 @@
AF2120972B4E7F1C00400B7F /* Assets.xcassets in Resources */,
00B946232B67B26D00DA668F /* ddd_video.mp4 in Resources */,
AF2120952B4E7F1A00400B7F /* Main.storyboard in Resources */,
009662462BB3B39900FCA65F /* External.storyboard in Resources */,
00C665732BAA81F900C309C3 /* GoogleService-Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -640,6 +661,7 @@
00C665792BAA94EA00C309C3 /* CopyCrashHandler.swift in Sources */,
AF2120AD2B4E92B000400B7F /* RootTabBarController.swift in Sources */,
00B946252B67B7DE00DA668F /* CCSpatialPlayView.swift in Sources */,
0096624A2BB3B45200FCA65F /* ExternalSceneDelegate.swift in Sources */,
AFD9F5932B58C34A008716DE /* ImageProcessingShaders.metal in Sources */,
AF2120F02B4EA39D00400B7F /* BaseTableViewGroupedController.swift in Sources */,
1E1EA2962B936C9600A5D5D2 /* VideoConvertor2.swift in Sources */,
@ -677,6 +699,7 @@
AF2120C82B4E95DA00400B7F /* NSString+Add.swift in Sources */,
1E1EA2902B933C8200A5D5D2 /* VideoWriter.swift in Sources */,
AF2120E62B4E9DE000400B7F /* CCTableSwitchView.swift in Sources */,
0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */,
00D33BFA2B9AB21A00604A44 /* ZZHAVExtension.swift in Sources */,
009661F82BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift in Sources */,
AF2120E02B4E9C8000400B7F /* Timer+Add.swift in Sources */,
@ -691,6 +714,7 @@
AF2120D22B4E99E600400B7F /* CCAddImage.swift in Sources */,
AF2120E42B4E9D5A00400B7F /* CCSMSView.swift in Sources */,
1E1EA28E2B93393A00A5D5D2 /* UIButton+CCExtension.swift in Sources */,
009662442BB2B93C00FCA65F /* SceneDelegate.swift in Sources */,
AF2120AB2B4E848400400B7F /* RootNavigationController.swift in Sources */,
AF2120C92B4E95DA00400B7F /* UIDevice+Add.swift in Sources */,
AF2120AF2B4E930400400B7F /* RootManager.swift in Sources */,
@ -863,6 +887,14 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1.0;
DEVELOPMENT_TEAM = 8DQD6BV6H9;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"COCOAPODS=1",
"$(inherited)",
"PB_FIELD_32BIT=1",
"PB_NO_PACKED_STRUCTS=1",
"PB_ENABLE_MALLOC=1",
);
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = SwiftProject/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = VPCamera;
@ -881,6 +913,8 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.1;
OTHER_CFLAGS = "";
OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS";
PRODUCT_BUNDLE_IDENTIFIER = com.nsk.tdvideo;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -904,6 +938,14 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1.0;
DEVELOPMENT_TEAM = 8DQD6BV6H9;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"COCOAPODS=1",
"$(inherited)",
"PB_FIELD_32BIT=1",
"PB_NO_PACKED_STRUCTS=1",
"PB_ENABLE_MALLOC=1",
);
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = SwiftProject/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = VPCamera;
@ -922,6 +964,8 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.1;
OTHER_CFLAGS = "";
OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS";
PRODUCT_BUNDLE_IDENTIFIER = com.nsk.tdvideo;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";

View File

@ -217,300 +217,6 @@
stopOnStyle = "0">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "39B0FCFC-A922-4F93-8D4C-91879D2F28C3"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "272"
endingLineNumber = "272"
landmarkName = "setttinisScreenMirroring(isScreenMirroring:)"
landmarkType = "7">
<Locations>
<Location
uuid = "39B0FCFC-A922-4F93-8D4C-91879D2F28C3 - 16ed8f55afa57b69"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "254"
endingLineNumber = "254"
offsetFromSymbolStart = "1168">
</Location>
<Location
uuid = "39B0FCFC-A922-4F93-8D4C-91879D2F28C3 - 16ed8f55afa57b69"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "254"
endingLineNumber = "254"
offsetFromSymbolStart = "1140">
</Location>
<Location
uuid = "39B0FCFC-A922-4F93-8D4C-91879D2F28C3 - 16ed8f55afa5644e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "261"
endingLineNumber = "261"
offsetFromSymbolStart = "1140">
</Location>
<Location
uuid = "39B0FCFC-A922-4F93-8D4C-91879D2F28C3 - 16ed8f55afa5653b"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "272"
endingLineNumber = "272"
offsetFromSymbolStart = "1140">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "829B5267-7321-437C-8C9B-51BE1747D98B"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "278"
endingLineNumber = "278"
landmarkName = "setttinisScreenMirroring(isScreenMirroring:)"
landmarkType = "7">
<Locations>
<Location
uuid = "829B5267-7321-437C-8C9B-51BE1747D98B - 16ed8f55afa57baf"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "260"
endingLineNumber = "260"
offsetFromSymbolStart = "2100">
</Location>
<Location
uuid = "829B5267-7321-437C-8C9B-51BE1747D98B - 16ed8f55afa5644e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "261"
endingLineNumber = "261"
offsetFromSymbolStart = "2100">
</Location>
<Location
uuid = "829B5267-7321-437C-8C9B-51BE1747D98B - 16ed8f55afa564b7"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "268"
endingLineNumber = "268"
offsetFromSymbolStart = "2100">
</Location>
<Location
uuid = "829B5267-7321-437C-8C9B-51BE1747D98B - 16ed8f55afa56620"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "279"
endingLineNumber = "279"
offsetFromSymbolStart = "2100">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "260"
endingLineNumber = "260"
landmarkName = "setttinisScreenMirroring(isScreenMirroring:)"
landmarkType = "7">
<Locations>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - 16ed8f55afa579dd"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "242"
endingLineNumber = "242"
offsetFromSymbolStart = "468">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - f43a84dcef1f8826"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (__C.UISceneSession) -&gt; Swift.Bool in SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "243"
endingLineNumber = "243"
offsetFromSymbolStart = "36">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - 16ed8f55afa579fc"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "243"
endingLineNumber = "243"
offsetFromSymbolStart = "468">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - f43a84dcef1f8845"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (__C.UISceneSession) -&gt; Swift.Bool in SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "244"
endingLineNumber = "244"
offsetFromSymbolStart = "36">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - 16ed8f55afa57ae5"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "250"
endingLineNumber = "250"
offsetFromSymbolStart = "468">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - f43a84dcef1f8b5e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (__C.UISceneSession) -&gt; Swift.Bool in SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "251"
endingLineNumber = "251"
offsetFromSymbolStart = "36">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - 16ed8f55afa5644e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "261"
endingLineNumber = "261"
offsetFromSymbolStart = "468">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - f43a84dcef1f95ab"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (__C.UISceneSession) -&gt; Swift.Bool in SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "262"
endingLineNumber = "262"
offsetFromSymbolStart = "36">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
@ -623,5 +329,181 @@
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "185788B7-62F3-4E0C-9396-78ABE1E78628"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/View/Album/CCSpaceAlbumFliterPopView/CCSpaceAlbumFilterPopView2.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "364"
endingLineNumber = "364"
landmarkName = "loadMoreData(offset:)"
landmarkType = "7">
<Locations>
<Location
uuid = "185788B7-62F3-4E0C-9396-78ABE1E78628 - 43721050df86c6"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpaceAlbumFilterPopView2.loadMoreData(offset: Swift.Int) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/View/Album/CCSpaceAlbumFliterPopView/CCSpaceAlbumFilterPopView2.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "363"
endingLineNumber = "363"
offsetFromSymbolStart = "1748">
</Location>
<Location
uuid = "185788B7-62F3-4E0C-9396-78ABE1E78628 - 43721050df86a5"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpaceAlbumFilterPopView2.loadMoreData(offset: Swift.Int) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/View/Album/CCSpaceAlbumFliterPopView/CCSpaceAlbumFilterPopView2.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "364"
endingLineNumber = "364"
offsetFromSymbolStart = "1352">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "3C728366-8A99-47EA-8781-7A4EF1C475C5"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "1199"
endingLineNumber = "1199"
landmarkName = "compositeSpatialPhoto()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "742F2A13-D3B1-41EF-8BDA-BE012155DB3C"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Util/ZZHImageExtension.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "72"
endingLineNumber = "72"
landmarkName = "getRotateFrom()"
landmarkType = "7">
<Locations>
<Location
uuid = "742F2A13-D3B1-41EF-8BDA-BE012155DB3C - 8f7fed01daeafa98"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__C.UIImage.getRotateFrom() -&gt; CoreGraphics.CGFloat"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Util/ZZHImageExtension.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "72"
endingLineNumber = "72"
offsetFromSymbolStart = "656">
</Location>
<Location
uuid = "742F2A13-D3B1-41EF-8BDA-BE012155DB3C - bb01223bea0e32a"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__C.UIImage.getRotateFrom(__C.UIImageOrientation) -&gt; CoreGraphics.CGFloat"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Util/ZZHImageExtension.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "72"
endingLineNumber = "72"
offsetFromSymbolStart = "616">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "9E72585C-BB41-412F-ABEA-35A8945D077F"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/View/Menu/CCBottomMenuPopView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "88"
endingLineNumber = "88"
landmarkName = "show(imageNameArray:textArray:_:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "761A3552-FBE7-4386-BC9D-5397073077D8"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "255"
endingLineNumber = "255"
landmarkName = "setttinisScreenMirroring(isScreenMirroring:)"
landmarkType = "7">
<Locations>
<Location
uuid = "761A3552-FBE7-4386-BC9D-5397073077D8 - 97146a28360eda1"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (__C.UIScene) -&gt; () in SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "262"
endingLineNumber = "262"
offsetFromSymbolStart = "1028">
</Location>
<Location
uuid = "761A3552-FBE7-4386-BC9D-5397073077D8 - 97146a28360ed67"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (__C.UIScene) -&gt; () in SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "268"
endingLineNumber = "268"
offsetFromSymbolStart = "1176">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>

View File

@ -18,11 +18,13 @@ import UIKit
import SVProgressHUD
import Firebase
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var root:RootManager?
// var root:RootManager?
var newWindow:UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Task {
FirebaseApp.configure()
@ -30,10 +32,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
SVProgressHUD.setDefaultStyle(.dark)
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.backgroundColor = UIColor.white
self.window?.makeKeyAndVisible()
self.window?.rootViewController = RootTabBarController()
// self.window = UIWindow(frame: UIScreen.main.bounds)
// self.window?.backgroundColor = UIColor.white
// self.window?.makeKeyAndVisible()
Analytics.logEvent("user_launch", parameters: ["type":"new"])
exceptionLogWithData()
@ -63,6 +65,25 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func applicationWillTerminate(_ application: UIApplication) {
}
// func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
// print("configurationForConnecting....")
// let scene = UIWindowScene(session: connectingSceneSession, connectionOptions: options)
//
// // Configure a window for the screen.
// self.newWindow = UIWindow(frame: CGRect(x: 0, y: 0, width: 2000, height: 1000))
// self.newWindow!.backgroundColor = UIColor.yellow
// // Install a custom root view controller in the window.
//
// let viewController = UIViewController()
// self.newWindow!.rootViewController = viewController
// self.newWindow!.windowScene = scene
//
// // You must show the window explicitly.
// self.newWindow!.isHidden = false
// NotificationCenter.default.post(name: Notification.Name(rawValue: "NSZZHHasNewWindowExternal"), object: self, userInfo: ["newwindow":self.newWindow!])
// return UISceneConfiguration(name: "External configuration", sessionRole: connectingSceneSession.role)
// }
}

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "编组 6.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "编组 5.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

View File

@ -56,11 +56,37 @@ let KInvite_Cell_orginal_Height:CGFloat = KHZSize(100)
///1.
var KWindow: UIWindow? {
get{
if let app = UIApplication.shared.delegate as? AppDelegate {
return app.window
var window:UIWindow? = nil
UIApplication.shared.connectedScenes.forEach { us in
if let uws = us as? UIWindowScene , uws.session.role.rawValue == "UIWindowSceneSessionRoleApplication" {
window = uws.windows.first
}
}
return nil
return window
// if let windowsScene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
// return windowsScene.windows.first
// }
// else {
// return nil
// }
// if let app = UIApplication.shared.delegate as? AppDelegate {
// return app.window
// }
// return nil
}
// if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
// let firstWindow = windowScene.windows.first{
// if let delegate = windowScene.delegate as? UIWindowSceneDelegate,
// let window = delegate.window as? UIWindow{
// print(firstWindow)
// print(window)
// }
// if let key = windowScene.keyWindow{
// print(key)
// }
// }
}
var KAppDelegate: AppDelegate? {

View File

@ -30,7 +30,7 @@ class CCAlert: NSObject {
cancelAction.setValue(TitleColor, forKey: "_titleTextColor")
alert.addAction(cancelAction)
}
let controller:UIViewController = AppDelegate.sharedAppDelegate().window!.rootViewController!
let controller:UIViewController = KWindow!.rootViewController!
controller.present(alert, animated: true, completion: nil)
}

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="Y6W-OH-hqX">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--External View Controller-->
<scene sceneID="s0d-6b-0kx">
<objects>
<viewController id="Y6W-OH-hqX" customClass="ZZHExternalViewController" customModule="SwiftProject" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="5EZ-qb-Rvc">
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<viewLayoutGuide key="safeArea" id="vDu-zF-Fre"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Ief-a0-LHa" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="132" y="-34"/>
</scene>
</scenes>
<resources>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>

View File

@ -0,0 +1,68 @@
//
// SceneDelegate.swift
// KeybaordTest
//
// Created by aaa on 2024/3/18.
//
import UIKit
class ExternalSceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
print("ExternalSceneDelegate scene.......")
// self.window?.rootViewController = ZZHExternalViewController()
// guard let _ = (scene as? UIWindowScene) else { return }
// guard let rootViewController = window?.rootViewController else {
// return
// }
}
func sceneDidDisconnect(_ scene: UIScene) {
// Called as the scene is being released by the system.
// This occurs shortly after the scene enters the background, or when its session is discarded.
// Release any resources associated with this scene that can be re-created the next time the scene connects.
// The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead).
print("ExternalSceneDelegate sceneDidDisconnect")
}
func sceneDidBecomeActive(_ scene: UIScene) {
// Called when the scene has moved from an inactive state to an active state.
// Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
print("ExternalSceneDelegate sceneDidBecomeActive")
}
func sceneWillResignActive(_ scene: UIScene) {
// Called when the scene will move from an active state to an inactive state.
// This may occur due to temporary interruptions (ex. an incoming phone call).
print("ExternalSceneDelegate sceneWillResignActive")
}
func sceneWillEnterForeground(_ scene: UIScene) {
// Called as the scene transitions from the background to the foreground.
// Use this method to undo the changes made on entering the background.
print("ExternalSceneDelegate sceneWillEnterForeground")
// DispatchQueue.main.async {
// NotificationCenter.default.post(name: Notification.Name(rawValue: "NSZZHHasNewWindowExternal"), object: self, userInfo: nil)
// print(" NSZZHHasNewWindowExternal ")
// }
}
func sceneDidEnterBackground(_ scene: UIScene) {
// Called as the scene transitions from the foreground to the background.
// Use this method to save data, release shared resources, and store enough scene-specific state information
// to restore the scene back to its current state.
print("ExternalSceneDelegate sceneDidEnterBackground")
}
}

View File

@ -0,0 +1,26 @@
//
// ZZHExternalViewController.swift
// SwiftProject
//
// Created by aaa on 2024/3/27.
//
import Foundation
import UIKit
class ZZHExternalViewController: UIViewController {
var imageView: UIImageView?
override func viewDidLoad() {
super.viewDidLoad()
print("ZZHExternalViewController viewDidLoad..")
imageView = UIImageView()
imageView?.image = UIImage(named: "externalScreenBg")
imageView?.contentMode = .scaleAspectFill
self.view .addSubview(imageView!)
imageView?.snp.makeConstraints({ make in
make.left.top.right.bottom.equalTo(0)
})
}
}

View File

@ -9,5 +9,35 @@
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<false/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string>Default Configuration</string>
<key>UISceneDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
<key>UISceneStoryboardFile</key>
<string>Main</string>
</dict>
</array>
<key>UIWindowSceneSessionRoleExternalDisplay</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string>External</string>
<key>UISceneDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).ExternalSceneDelegate</string>
<key>UISceneStoryboardFile</key>
<string>External</string>
</dict>
</array>
</dict>
</dict>
</dict>
</plist>

View File

@ -23,10 +23,12 @@ enum VideoReaderError : Error {
class CCSpatialPhotoDisplayController: BaseController {
let kNowTimeToUserDefaultKey_PhotoDisplayController:String = "kNowTimeToUserDefaultKey_PhotoDisplayController"
//
lazy var externalWindow:UIWindow = {
return UIWindow(frame: self.view.bounds)
}()
// lazy var externalWindow:UIWindow = {
// return UIWindow(frame: self.view.bounds)
// }()
var externalVC:ZZHExternalViewController?
var externalDispalylink:CADisplayLink?
var externalImageView:UIImageView?
// var player:AVPlayer = AVPlayer()
@ -148,17 +150,20 @@ class CCSpatialPhotoDisplayController: BaseController {
NotificationCenter.default.removeObserver(self)
}
override func viewDidLoad() {
super.viewDidLoad()
ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_PhotoDisplayController)
print("spatioal photo viewdidload...\(self)")
// return
//
// NotificationCenter.default.addObserver(self, selector: #selector(exScreenWillConnectNotification(notification:)), name: UIScene.willConnectNotification, object: nil)
// NotificationCenter.default.addObserver(self, selector: #selector(exScreenDisConnectNotification(notification:)), name: UIScene.didDisconnectNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(exScreenWillConnectNotification(notification:)), name: UIScene.willConnectNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(exScreenDisConnectNotification(notification:)), name: UIScene.didDisconnectNotification, object: nil)
// AirPlay
NotificationCenter.default.addObserver(self, selector: #selector(airPlayStatusDidChange(notification:)), name: AVAudioSession.routeChangeNotification, object: nil)
// NotificationCenter.default.addObserver(self, selector: #selector(airPlayStatusDidChange(notification:)), name: AVAudioSession.routeChangeNotification, object: nil)
self.view.backgroundColor = UIColor(hexString: "#060507")
outputVideoURL = URL.documentsDirectory.appending(path:"output11114.jpg")
@ -169,7 +174,7 @@ class CCSpatialPhotoDisplayController: BaseController {
imgData = originalData
//
var image = UIImage(data: originalData!)
let image = UIImage(data: originalData!)
mImgView.image = image
imgOritentation = image?.imageOrientation ?? .left
@ -205,7 +210,17 @@ class CCSpatialPhotoDisplayController: BaseController {
}
//MARK: -
@objc func airPlayStatusDidChange(notification:Notification) {
@objc func exScreenWillConnectNotification(notification:Notification){
print("exScreenWillConnectNotification>>>>>")
airPlayStatusDidChange(notification: notification)
}
@objc func exScreenDisConnectNotification(notification:Notification){
print("exScreenDisConnectNotification>>>>>")
airPlayStatusDidChange(notification: notification)
}
func airPlayStatusDidChange(notification:Notification) {
checkAirPlayStatus()
if(isAirPlayActive) {
@ -216,15 +231,8 @@ class CCSpatialPhotoDisplayController: BaseController {
let sec:TimeInterval = ZZHHelper.getSecFromUserDefaultByKey("kNowTimeToUserDefaultKey_PhotoDisplayController_airplay")
Analytics.logEvent("streaming_live", parameters: ["refer_page":"图片预览页面","duration":sec])
}
}
// @objc func exScreenDisConnectNotification(notification:Notification) {
// print(" ")
//
// checkAirPlayStatus()
// }
private func checkAirPlayStatus() {
print("设备连接变化 photodisplaycontroller>>>>>")
@ -239,47 +247,100 @@ class CCSpatialPhotoDisplayController: BaseController {
//
if(isScreenMirroring){
print("变化为已连接。。。。")
//
let sessions:Set<UISceneSession> = UIApplication.shared.openSessions
//
let otherScreenSessions:Set<UISceneSession> = sessions.filter {
$0.role.rawValue.contains("External")
}
UIApplication.shared.connectedScenes.forEach { us in
print("uisence:\(us)\n")
let ws = us as! UIWindowScene
if ws.session.role.rawValue == "UIWindowSceneSessionRoleExternalDisplayNonInteractive"{
externalVC = ws.windows.first?.rootViewController as? ZZHExternalViewController
// if let has_exvc = exvc {
// has_exvc.imageView?.image = mImgView.image
// }
externalDispalylink = ws.windows.first?.screen.displayLink(withTarget: self, selector: #selector(displayUpdate(caDisplayLink:)))
externalDispalylink?.add(to: RunLoop.main, forMode: RunLoop.Mode.common)
}
if let session = otherScreenSessions.first,
let scene = session.scene {
self.externalWindow.windowScene = scene as! UIWindowScene
let nvc = UIViewController()
self.externalWindow.rootViewController = nvc
var imageView = UIImageView(frame: CGRectMake(0, 0, KScreenHeight*2, KScreenHeight*2))
imageView.contentMode = .scaleAspectFit
externalImageView = imageView
nvc.view.addSubview(imageView)
self.externalWindow.isHidden = false
var dispalylink:CADisplayLink? = self.externalWindow.windowScene?.windows.first?.screen.displayLink(withTarget: self, selector: #selector(displayUpdate(caDisplayLink:)))
dispalylink?.add(to: RunLoop.main, forMode: RunLoop.Mode.common)
}
else {
print("未发现外接屏....")
}
//
// let sessions:Set<UISceneSession> = UIApplication.shared.openSessions
// sessions.forEach { ss in
// print("role:\(ss.role.rawValue)")
// }
// //
// let otherScreenSessions:Set<UISceneSession> = sessions.filter {
// $0.role.rawValue.contains("External")
// }
//
// otherScreenSessions.forEach { ssn in
// print("ssn role:\(ssn.role.rawValue) first:\(otherScreenSessions.first)")
// }
//
// UIApplication.shared.connectedScenes.forEach { us in
// print("conn sc:\(us)")
// }
// if let session = otherScreenSessions.first{
// let ssar = UISceneSessionActivationRequest.init(session: session)
// UIApplication.shared.activateSceneSession(for: ssar) { err in
// print("error:\(err)")
// }
// guard let scene = session.scene else {
// return
// }
// self.externalWindow.windowScene = scene as! UIWindowScene
// let nvc = UIViewController()
// self.externalWindow.rootViewController = nvc
// var imageView = UIImageView(frame: CGRectMake(0, 0, KScreenHeight*2, KScreenHeight*2))
// imageView.contentMode = .scaleAspectFit
// externalImageView = imageView
// nvc.view.addSubview(imageView)
// self.externalWindow.isHidden = false
// var dispalylink:CADisplayLink? = self.externalWindow.windowScene?.windows.first?.screen.displayLink(withTarget: self, selector: #selector(displayUpdate(caDisplayLink:)))
// dispalylink?.add(to: RunLoop.main, forMode: RunLoop.Mode.common)
// }
// else {
// print("....")
// }
}
else{
print("变化为 断开。。。。")
if let imv = externalImageView{
imv .removeFromSuperview()
}
externalImageView = nil
self.externalWindow.isHidden = true
self.externalWindow.rootViewController = nil
externalVC = nil
externalDispalylink?.invalidate()
externalDispalylink = nil
// if let imv = externalImageView{
// imv .removeFromSuperview()
// }
// externalImageView = nil
// self.externalWindow.isHidden = true
// self.externalWindow.rootViewController = nil
}
}
// @objc func hasNewWindowExternal(notification:Notification){
// print("hasNewWindowExternal notifi...")
// let window = notification.userInfo?["newwindow"] as! UIWindow
// let imageView = UIImageView(frame: CGRectMake(0, 0, KScreenHeight*2, KScreenHeight*2))
// imageView.contentMode = .scaleAspectFit
// externalImageView = imageView
// window.rootViewController?.view.addSubview(imageView)
// let dispalylink:CADisplayLink? = window.screen.displayLink(withTarget: self, selector: #selector(displayUpdate(caDisplayLink:)))
// dispalylink?.add(to: RunLoop.main, forMode: RunLoop.Mode.common)
//
// }
@objc func displayUpdate(caDisplayLink:CADisplayLink) {
if externalImageView?.image != mImgView.image {
externalImageView?.image = mImgView.image
// if externalImageView?.image != mImgView.image {
// externalImageView?.image = mImgView.image
// }
if let has_exvc = externalVC {
has_exvc.imageView?.image = mImgView.image
}
}
@ -318,7 +379,6 @@ class CCSpatialPhotoDisplayController: BaseController {
print("选中了第 \(selectedIndex) 个选项")
// player.pause()
NotificationCenter.default.removeObserver(self)
mImgView.frame = CGRect.init(x: 0, y: 200, width: self.view.frame.size.width, height: 240)
guard let imageSource = CGImageSourceCreateWithData(imgData! as CFData, nil) else {

View File

@ -0,0 +1,58 @@
//
// SceneDelegate.swift
// KeybaordTest
//
// Created by aaa on 2024/3/18.
//
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
print("scene.......")
self.window?.rootViewController = RootTabBarController()
guard let _ = (scene as? UIWindowScene) else { return }
}
func sceneDidDisconnect(_ scene: UIScene) {
// Called as the scene is being released by the system.
// This occurs shortly after the scene enters the background, or when its session is discarded.
// Release any resources associated with this scene that can be re-created the next time the scene connects.
// The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead).
print("sceneDidDisconnect")
}
func sceneDidBecomeActive(_ scene: UIScene) {
// Called when the scene has moved from an inactive state to an active state.
// Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
print("sceneDidBecomeActive")
}
func sceneWillResignActive(_ scene: UIScene) {
// Called when the scene will move from an active state to an inactive state.
// This may occur due to temporary interruptions (ex. an incoming phone call).
print("sceneWillResignActive")
}
func sceneWillEnterForeground(_ scene: UIScene) {
// Called as the scene transitions from the background to the foreground.
// Use this method to undo the changes made on entering the background.
print("sceneWillEnterForeground")
}
func sceneDidEnterBackground(_ scene: UIScene) {
// Called as the scene transitions from the foreground to the background.
// Use this method to save data, release shared resources, and store enough scene-specific state information
// to restore the scene back to its current state.
print("sceneDidEnterBackground")
}
}