diff --git a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate index 32e4bae..99b7e58 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 1c88ba2..27b18a0 100644 --- a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -46,8 +46,8 @@ filePath = "SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "125" - endingLineNumber = "125" + startingLineNumber = "131" + endingLineNumber = "131" landmarkName = "init(menuWidth:arrow:datas:configures:dissMissCallback:)" landmarkType = "7"> @@ -553,22 +553,6 @@ - - - - + + + + diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift index 5d71c83..4a1d836 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift @@ -71,7 +71,7 @@ class CCSpatialVideoDisplayController: BaseController { let kNowTimeToUserDefaultKey_VideoDisplayController:String = "kNowTimeToUserDefaultKey_VideoDisplayController" var link = false//是否已连接设备 - var isPlaying = false//是否正在播放 + var isPlaying = false//是否正在串流播放 var selectedIndex:SpatialType = .parallelEyes//记录当前选择的菜单选项 { @@ -421,11 +421,16 @@ class CCSpatialVideoDisplayController: BaseController { } externalDispalylink = ws.windows.first?.screen.displayLink(withTarget: self, selector: #selector(displayUpdate(caDisplayLink:))) externalDispalylink?.add(to: RunLoop.main, forMode: RunLoop.Mode.common) - } + } } } + updateTopCenterButtonWhenIsPlayingChange() + } + + //当处理外部设备连接状态时,串流状态更新 + func updateTopCenterButtonWhenIsPlayingChange() { //串流播放中 mTopCenterTypeButton.setImage(UIImage.init(named: "linked_button"), for: .normal) mTopCenterTypeButton.setTitleColor(UIColor(hexString: "#D0C0FF"), for: .normal) @@ -477,6 +482,7 @@ class CCSpatialVideoDisplayController: BaseController { externalVC?.playerLayer?.player = nil self.playerController?.player = player player?.play() + externalVC = nil } @objc func displayUpdate(caDisplayLink:CADisplayLink) { @@ -503,7 +509,7 @@ class CCSpatialVideoDisplayController: BaseController { } func releaseVideoComposition() { - if let ed = externalDispalylink { + if externalDispalylink != nil { externalDispalylink?.invalidate() externalDispalylink = nil } @@ -566,19 +572,39 @@ class CCSpatialVideoDisplayController: BaseController { } func startOrEndExternalVR() { - //开始串流/结束串流 if(link == true){ - isPlaying = !isPlaying - if(isPlaying == true){ - // 当前已连接到 AirPlay 设备 - playerController!.player!.usesExternalPlaybackWhileExternalScreenIsActive = true - playerController!.player!.allowsExternalPlayback = true - }else{ - playerController!.player!.usesExternalPlaybackWhileExternalScreenIsActive = false - playerController!.player!.allowsExternalPlayback = false - + if isPlaying {//结束串流 + isPlaying = false + if self.externalVC != nil { + externalVC?.playerLayer?.player = nil + player?.pause() + releaseVideoComposition() + DispatchQueue.main.asyncAfter(deadline: .now()+0.15, execute: {[weak self] in + let playerItem = self?.getPlayerItem() + self?.player?.replaceCurrentItem(with: playerItem) + self?.playerController?.player = self?.player + self?.player?.play() + }) + + } } + else {//开始串流 + if self.externalVC != nil { + self.playerController?.player = nil + player?.pause() + releaseVideoComposition() + let playerItem = self.getPlayerItem() + player?.replaceCurrentItem(with: playerItem) + externalVC?.playerLayer?.player = player + player?.play() + isPlaying = true + } + } + } + + + updateTopCenterButtonWhenIsPlayingChange() } func selectedSpatialType(selectedIndex:Int){ diff --git a/SwiftProject/SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift b/SwiftProject/SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift index cb8dfea..2c4ee10 100644 --- a/SwiftProject/SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift +++ b/SwiftProject/SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift @@ -87,9 +87,15 @@ public class CCSpatialDisplayTypeView: UIView { view.isHidden = true //增加点击手势 - let guesture = UITapGestureRecognizer(target: self, action: #selector(tapFooterAction)) - view.addGestureRecognizer(guesture) - +// let guesture = UITapGestureRecognizer(target: self, action: #selector(tapFooterAction)) +// view.addGestureRecognizer(guesture) + let btn = UIButton() + view.addSubview(btn) + btn.backgroundColor = .clear + btn.addTarget(self, action: #selector(tapFooterAction), for: .touchUpInside) + btn.snp.makeConstraints { make in + make.left.top.right.bottom.equalToSuperview() + } return view }() lazy var showBottomTextLabel: UILabel = { @@ -100,7 +106,7 @@ public class CCSpatialDisplayTypeView: UIView { label.textAlignment = .center label.font = KFont_Medium(12) label.textColor = .white -// label.isUserInteractionEnabled = true + label.isUserInteractionEnabled = false return label @@ -376,6 +382,7 @@ extension CCSpatialDisplayTypeView : UITableViewDataSource,UITableViewDelegate{ //MARK: - 点击Footer @objc func tapFooterAction() -> Void { self.tapFooterActionBlock?() + dismiss() }