|
|
@ -50,8 +50,8 @@ class VideoController: UIViewController, ItemController, BMPlayerDelegate, EditI |
|
|
var backButton: UIBarButtonItem? |
|
|
var backButton: UIBarButtonItem? |
|
|
var reviewButton: UIBarButtonItem? |
|
|
var reviewButton: UIBarButtonItem? |
|
|
|
|
|
|
|
|
let speedOptions = [ 0.25, 1 ] |
|
|
|
|
|
var speedOption = 1 |
|
|
|
|
|
|
|
|
let speedOptions = [ 0.25, 0.5, 1, 2 ] |
|
|
|
|
|
var speedOption = 2 |
|
|
|
|
|
|
|
|
var aspect = 1 |
|
|
var aspect = 1 |
|
|
|
|
|
|
|
|
@ -67,6 +67,9 @@ class VideoController: UIViewController, ItemController, BMPlayerDelegate, EditI |
|
|
|
|
|
|
|
|
var urls : [URL]? |
|
|
var urls : [URL]? |
|
|
|
|
|
|
|
|
|
|
|
var kv : EditItemView? |
|
|
|
|
|
var hc : UIHostingController<EditItemView>? |
|
|
|
|
|
|
|
|
override func viewDidLoad() { |
|
|
override func viewDidLoad() { |
|
|
super.viewDidLoad() |
|
|
super.viewDidLoad() |
|
|
|
|
|
|
|
|
@ -82,6 +85,9 @@ class VideoController: UIViewController, ItemController, BMPlayerDelegate, EditI |
|
|
reviewButton = UIBarButtonItem(title:"Edit ", style:UIBarButtonItem.Style.plain, target: self, action: #selector(VideoController.doEdit(_:))) |
|
|
reviewButton = UIBarButtonItem(title:"Edit ", style:UIBarButtonItem.Style.plain, target: self, action: #selector(VideoController.doEdit(_:))) |
|
|
|
|
|
|
|
|
navigationItem.leftBarButtonItems = [backButton!, speedButton!, playButton!, loopButton!, aspectButton!, favButton!, reviewButton!] |
|
|
navigationItem.leftBarButtonItems = [backButton!, speedButton!, playButton!, loopButton!, aspectButton!, favButton!, reviewButton!] |
|
|
|
|
|
//MediaItem(name: "extern", path: "", root: "", type: ItemType.FAVROOT) |
|
|
|
|
|
|
|
|
|
|
|
// pc.view.isHidden = true |
|
|
|
|
|
|
|
|
view.addSubview(player) |
|
|
view.addSubview(player) |
|
|
player.snp.makeConstraints { (make) in |
|
|
player.snp.makeConstraints { (make) in |
|
|
@ -106,10 +112,15 @@ class VideoController: UIViewController, ItemController, BMPlayerDelegate, EditI |
|
|
update() |
|
|
update() |
|
|
} |
|
|
} |
|
|
loopMode = detailDelegate!.settings().autoloop |
|
|
loopMode = detailDelegate!.settings().autoloop |
|
|
|
|
|
if detailDelegate!.settings().edit { |
|
|
|
|
|
doEdit(self) |
|
|
|
|
|
} |
|
|
updateLoop() |
|
|
updateLoop() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func editItem() { |
|
|
func editItem() { |
|
|
|
|
|
cancelEdit() |
|
|
|
|
|
|
|
|
let currentItem = player.playerLayer?.player?.currentItem |
|
|
let currentItem = player.playerLayer?.player?.currentItem |
|
|
let totalTime : Double |
|
|
let totalTime : Double |
|
|
|
|
|
|
|
|
@ -124,14 +135,28 @@ class VideoController: UIViewController, ItemController, BMPlayerDelegate, EditI |
|
|
setEnd() |
|
|
setEnd() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
let kv = EditItemView(item: currentSnapshot!, len: totalTime, delegate: self) |
|
|
|
|
|
|
|
|
kv = EditItemView(item: currentSnapshot!, len: totalTime, delegate: self) |
|
|
|
|
|
hc = UIHostingController(rootView: kv!) |
|
|
|
|
|
addChild(hc!) |
|
|
|
|
|
|
|
|
|
|
|
view.addSubview(hc!.view) |
|
|
|
|
|
|
|
|
|
|
|
hc!.view.backgroundColor = .clear |
|
|
|
|
|
hc!.view.snp.makeConstraints { (make) in |
|
|
|
|
|
make.width.equalTo(400) |
|
|
|
|
|
make.height.equalTo(300) |
|
|
|
|
|
make.right.equalToSuperview() |
|
|
|
|
|
make.top.equalToSuperview() |
|
|
|
|
|
} |
|
|
|
|
|
// player.controlView.topWrapperView.addSubview(hc!.view) |
|
|
|
|
|
|
|
|
|
|
|
// player.controlView.setNeedsLayout() |
|
|
|
|
|
// player.controlView.layoutIfNeeded() |
|
|
|
|
|
|
|
|
let pc = UIHostingController(rootView: kv) |
|
|
|
|
|
pc.view.backgroundColor = .clear |
|
|
|
|
|
let navController = UINavigationController(rootViewController: pc) // Creating a navigation controller with pc at the root of the navigation stack. |
|
|
|
|
|
|
|
|
// let navController = UINavigationController(rootViewController: pc) // Creating a navigation controller with pc at the root of the navigation stack. |
|
|
// navController.modalPresentationStyle = .popover |
|
|
// navController.modalPresentationStyle = .popover |
|
|
|
|
|
|
|
|
present(navController, animated: false, completion: nil) |
|
|
|
|
|
|
|
|
// present(navController, animated: false, completion: nil) |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -167,6 +192,16 @@ class VideoController: UIViewController, ItemController, BMPlayerDelegate, EditI |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func cancelEdit() { |
|
|
|
|
|
if hc == nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
hc!.view.removeFromSuperview() |
|
|
|
|
|
kv = nil |
|
|
|
|
|
hc = nil |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
func seek(_ value: Double) { |
|
|
func seek(_ value: Double) { |
|
|
self.player.seekSmoothlyToTime(newChaseTime: value) |
|
|
self.player.seekSmoothlyToTime(newChaseTime: value) |
|
|
} |
|
|
} |
|
|
@ -694,6 +729,10 @@ class VideoController: UIViewController, ItemController, BMPlayerDelegate, EditI |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func moveUp() { |
|
|
func moveUp() { |
|
|
|
|
|
if !loopMode { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
let t = Date().timeIntervalSince1970 |
|
|
let t = Date().timeIntervalSince1970 |
|
|
if lastMove + 2 > t { |
|
|
if lastMove + 2 > t { |
|
|
return |
|
|
return |
|
|
@ -722,6 +761,10 @@ class VideoController: UIViewController, ItemController, BMPlayerDelegate, EditI |
|
|
var lastMove = 0.0 |
|
|
var lastMove = 0.0 |
|
|
|
|
|
|
|
|
func moveDown() { |
|
|
func moveDown() { |
|
|
|
|
|
if !loopMode { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
let t = Date().timeIntervalSince1970 |
|
|
let t = Date().timeIntervalSince1970 |
|
|
if lastMove + 2 > t { |
|
|
if lastMove + 2 > t { |
|
|
return |
|
|
return |
|
|
|