diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift index 6d98247..291bb56 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift @@ -425,11 +425,15 @@ class CCSpatialVideoDisplayController: BaseController { //当isAirPlayActive值改变时会调用该方法 func setttinisScreenMirroring(isScreenMirroring:Bool){ + customPlayer.isPlayingOnExternalScreen = isScreenMirroring + releaseVideoComposition() //已连接 if(isScreenMirroring){ self.dealTaskWhenExternalScreenConnect() + customPlayer.currentED = 0//串流中,就将ed默认设置为0 + CustomParamBoardView.exHidenBoard() }else{ //未连接 self.dealTaskWhenExternalScreenDisConnect() diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/ZZHCustomPlayer.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/ZZHCustomPlayer.swift index 2f3250f..de220d2 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/ZZHCustomPlayer.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/ZZHCustomPlayer.swift @@ -17,6 +17,8 @@ class ZZHCustomPlayer: UIView { var maskViewTapCallback:CustomMaskViewTapCallback? //标记是否为横屏 var isLandscape:Bool = false + //标记是否正在串流中 + var isPlayingOnExternalScreen = false //视频资源 var sourceVideoURL:URL? var assetTrack:AVAssetTrack? @@ -233,7 +235,7 @@ class ZZHCustomPlayer: UIView { self?.currentED = 0 }, dismissCallback:{[weak self] in self?.saveParams() - },scale: currentScale, ed: currentED) + },scale: currentScale, ed: currentED,canChangeED: isPlayingOnExternalScreen) } //通过slider进行seek播放时间点 diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/ZZHCustomSlider.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/ZZHCustomSlider.swift index 0d3412f..1de537b 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/ZZHCustomSlider.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/ZZHCustomSlider.swift @@ -325,6 +325,12 @@ class CustomParamBoardView: UIView { var edSlider:CCSlider? var edTitleLabel:UILabel? + //标记是否在串流,串流中,则隐藏瞳距,不允许调节 + var isPlayingOnExternalScreen = false { + didSet { + upadteUIWithIsPlayingOnExternalScreen(isPlayingOnExternalScreen) + } + } let bgViewHeight = 400 lazy var bgView:UIView = { let bg = UIView() @@ -357,6 +363,25 @@ class CustomParamBoardView: UIView { let superBgView = UIView() + //更新是否显示瞳距的按钮 + func upadteUIWithIsPlayingOnExternalScreen(_ isPlayingOnExternalScreen:Bool) { + edSlider?.isHidden = isPlayingOnExternalScreen + edTitleLabel?.isHidden = isPlayingOnExternalScreen + + if isPlayingOnExternalScreen { + self.superBgView.snp.updateConstraints { make in + make.height.equalTo(116) + } + + } + else{ + self.superBgView.snp.updateConstraints { make in + make.height.equalTo(170) + } + } + self.layoutIfNeeded() + } + override init(frame: CGRect) { super.init(frame: frame) let tgrBgView = UIView() @@ -476,7 +501,6 @@ class CustomParamBoardView: UIView { self.scaleTitleLabel?.text = formattedValue let minValue = 0.3 let maxValue = 1.8 -// let resultValue = minValue + (maxValue - minValue) * Double(value) let v = (resultValue - minValue) / (maxValue - minValue) self.scaleSlider?.slider?.value = Float(v) } @@ -540,8 +564,18 @@ class CustomParamBoardView: UIView { } } - - class func showBoard(scaleCallback:@escaping CustomParamBoardViewScaleCallback,edCallback:@escaping CustomParamBoardViewEDCallback,resetCallback:@escaping CustomParamBoardViewResetCallback,dismissCallback:@escaping CustomParamBoardViewDismissCallback,scale:CGFloat,ed:Int) { + //提供当外部串流连接时,先主动隐藏该视图 + class func exHidenBoard(){ + if let view = KWindow?.viewWithTag(3100) { + UIView.animate(withDuration: 0.25) { + view.alpha = 0 + } completion: { finish in + view.removeFromSuperview() + } + + } + } + class func showBoard(scaleCallback:@escaping CustomParamBoardViewScaleCallback,edCallback:@escaping CustomParamBoardViewEDCallback,resetCallback:@escaping CustomParamBoardViewResetCallback,dismissCallback:@escaping CustomParamBoardViewDismissCallback,scale:CGFloat,ed:Int,canChangeED:Bool) { let view = CustomParamBoardView(frame: .zero) view.scaleCallback = scaleCallback view.edCallback = edCallback @@ -549,6 +583,8 @@ class CustomParamBoardView: UIView { view.dismissCallback = dismissCallback view.exUpdateEDTitleLabelWith(currED: ed) view.exUpdateScaleTitleWithValue(resultValue: scale) + view.isPlayingOnExternalScreen = canChangeED + view.tag = 3100 KWindow?.addSubview(view) view.snp.makeConstraints { make in make.left.top.right.bottom.equalToSuperview()