添加结束串流、开始串流的逻辑
This commit is contained in:
parent
b22545fed0
commit
021a8d5b7f
Binary file not shown.
@ -46,8 +46,8 @@
|
|||||||
filePath = "SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift"
|
filePath = "SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "125"
|
startingLineNumber = "131"
|
||||||
endingLineNumber = "125"
|
endingLineNumber = "131"
|
||||||
landmarkName = "init(menuWidth:arrow:datas:configures:dissMissCallback:)"
|
landmarkName = "init(menuWidth:arrow:datas:configures:dissMissCallback:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
<Locations>
|
<Locations>
|
||||||
@ -553,22 +553,6 @@
|
|||||||
</Locations>
|
</Locations>
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
</BreakpointProxy>
|
</BreakpointProxy>
|
||||||
<BreakpointProxy
|
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
||||||
<BreakpointContent
|
|
||||||
uuid = "AC3AF843-C4D6-4749-834A-B1DCA686B7CC"
|
|
||||||
shouldBeEnabled = "Yes"
|
|
||||||
ignoreCount = "0"
|
|
||||||
continueAfterRunningActions = "No"
|
|
||||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift"
|
|
||||||
startingColumnNumber = "9223372036854775807"
|
|
||||||
endingColumnNumber = "9223372036854775807"
|
|
||||||
startingLineNumber = "552"
|
|
||||||
endingLineNumber = "552"
|
|
||||||
landmarkName = "navgationButtonClick2(sender:)"
|
|
||||||
landmarkType = "7">
|
|
||||||
</BreakpointContent>
|
|
||||||
</BreakpointProxy>
|
|
||||||
<BreakpointProxy
|
<BreakpointProxy
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
<BreakpointContent
|
<BreakpointContent
|
||||||
@ -633,5 +617,21 @@
|
|||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
</BreakpointProxy>
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "EF28D223-534C-4D5B-8564-50D9720BA766"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "611"
|
||||||
|
endingLineNumber = "611"
|
||||||
|
landmarkName = "selectedSpatialType(selectedIndex:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
</Breakpoints>
|
</Breakpoints>
|
||||||
</Bucket>
|
</Bucket>
|
||||||
|
|||||||
@ -71,7 +71,7 @@ class CCSpatialVideoDisplayController: BaseController {
|
|||||||
|
|
||||||
let kNowTimeToUserDefaultKey_VideoDisplayController:String = "kNowTimeToUserDefaultKey_VideoDisplayController"
|
let kNowTimeToUserDefaultKey_VideoDisplayController:String = "kNowTimeToUserDefaultKey_VideoDisplayController"
|
||||||
var link = false//是否已连接设备
|
var link = false//是否已连接设备
|
||||||
var isPlaying = false//是否正在播放
|
var isPlaying = false//是否正在串流播放
|
||||||
|
|
||||||
var selectedIndex:SpatialType = .parallelEyes//记录当前选择的菜单选项
|
var selectedIndex:SpatialType = .parallelEyes//记录当前选择的菜单选项
|
||||||
{
|
{
|
||||||
@ -421,11 +421,16 @@ class CCSpatialVideoDisplayController: BaseController {
|
|||||||
}
|
}
|
||||||
externalDispalylink = ws.windows.first?.screen.displayLink(withTarget: self, selector: #selector(displayUpdate(caDisplayLink:)))
|
externalDispalylink = ws.windows.first?.screen.displayLink(withTarget: self, selector: #selector(displayUpdate(caDisplayLink:)))
|
||||||
externalDispalylink?.add(to: RunLoop.main, forMode: RunLoop.Mode.common)
|
externalDispalylink?.add(to: RunLoop.main, forMode: RunLoop.Mode.common)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateTopCenterButtonWhenIsPlayingChange()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//当处理外部设备连接状态时,串流状态更新
|
||||||
|
func updateTopCenterButtonWhenIsPlayingChange() {
|
||||||
//串流播放中
|
//串流播放中
|
||||||
mTopCenterTypeButton.setImage(UIImage.init(named: "linked_button"), for: .normal)
|
mTopCenterTypeButton.setImage(UIImage.init(named: "linked_button"), for: .normal)
|
||||||
mTopCenterTypeButton.setTitleColor(UIColor(hexString: "#D0C0FF"), for: .normal)
|
mTopCenterTypeButton.setTitleColor(UIColor(hexString: "#D0C0FF"), for: .normal)
|
||||||
@ -477,6 +482,7 @@ class CCSpatialVideoDisplayController: BaseController {
|
|||||||
externalVC?.playerLayer?.player = nil
|
externalVC?.playerLayer?.player = nil
|
||||||
self.playerController?.player = player
|
self.playerController?.player = player
|
||||||
player?.play()
|
player?.play()
|
||||||
|
externalVC = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func displayUpdate(caDisplayLink:CADisplayLink) {
|
@objc func displayUpdate(caDisplayLink:CADisplayLink) {
|
||||||
@ -503,7 +509,7 @@ class CCSpatialVideoDisplayController: BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func releaseVideoComposition() {
|
func releaseVideoComposition() {
|
||||||
if let ed = externalDispalylink {
|
if externalDispalylink != nil {
|
||||||
externalDispalylink?.invalidate()
|
externalDispalylink?.invalidate()
|
||||||
externalDispalylink = nil
|
externalDispalylink = nil
|
||||||
}
|
}
|
||||||
@ -566,19 +572,39 @@ class CCSpatialVideoDisplayController: BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func startOrEndExternalVR() {
|
func startOrEndExternalVR() {
|
||||||
//开始串流/结束串流
|
|
||||||
if(link == true){
|
if(link == true){
|
||||||
isPlaying = !isPlaying
|
if isPlaying {//结束串流
|
||||||
if(isPlaying == true){
|
isPlaying = false
|
||||||
// 当前已连接到 AirPlay 设备
|
if self.externalVC != nil {
|
||||||
playerController!.player!.usesExternalPlaybackWhileExternalScreenIsActive = true
|
externalVC?.playerLayer?.player = nil
|
||||||
playerController!.player!.allowsExternalPlayback = true
|
player?.pause()
|
||||||
}else{
|
releaseVideoComposition()
|
||||||
playerController!.player!.usesExternalPlaybackWhileExternalScreenIsActive = false
|
DispatchQueue.main.asyncAfter(deadline: .now()+0.15, execute: {[weak self] in
|
||||||
playerController!.player!.allowsExternalPlayback = false
|
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){
|
func selectedSpatialType(selectedIndex:Int){
|
||||||
|
|||||||
@ -87,9 +87,15 @@ public class CCSpatialDisplayTypeView: UIView {
|
|||||||
view.isHidden = true
|
view.isHidden = true
|
||||||
|
|
||||||
//增加点击手势
|
//增加点击手势
|
||||||
let guesture = UITapGestureRecognizer(target: self, action: #selector(tapFooterAction))
|
// let guesture = UITapGestureRecognizer(target: self, action: #selector(tapFooterAction))
|
||||||
view.addGestureRecognizer(guesture)
|
// 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
|
return view
|
||||||
}()
|
}()
|
||||||
lazy var showBottomTextLabel: UILabel = {
|
lazy var showBottomTextLabel: UILabel = {
|
||||||
@ -100,7 +106,7 @@ public class CCSpatialDisplayTypeView: UIView {
|
|||||||
label.textAlignment = .center
|
label.textAlignment = .center
|
||||||
label.font = KFont_Medium(12)
|
label.font = KFont_Medium(12)
|
||||||
label.textColor = .white
|
label.textColor = .white
|
||||||
// label.isUserInteractionEnabled = true
|
label.isUserInteractionEnabled = false
|
||||||
|
|
||||||
|
|
||||||
return label
|
return label
|
||||||
@ -376,6 +382,7 @@ extension CCSpatialDisplayTypeView : UITableViewDataSource,UITableViewDelegate{
|
|||||||
//MARK: - 点击Footer
|
//MARK: - 点击Footer
|
||||||
@objc func tapFooterAction() -> Void {
|
@objc func tapFooterAction() -> Void {
|
||||||
self.tapFooterActionBlock?()
|
self.tapFooterActionBlock?()
|
||||||
|
dismiss()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user