控制层自动隐藏
This commit is contained in:
parent
a22254bc39
commit
a2dfc4aac5
@ -22,6 +22,8 @@ class BRExplorePlayerCell: BRPlayerListCell {
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(updateShortFavoriteStateNotification), name: BRVideoAPI.updateShortFavoriteStateNotification, object: nil)
|
||||
|
||||
self.player.controlAutomaticallyDisappear = false
|
||||
}
|
||||
|
||||
@MainActor required init?(coder: NSCoder) {
|
||||
|
@ -14,4 +14,12 @@ class BRDetailPlayerCell: BRPlayerListCell {
|
||||
return BRDetailControlView.self
|
||||
}
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
self.player.controlAutomaticallyDisappear = true
|
||||
}
|
||||
|
||||
@MainActor required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
}
|
||||
|
@ -89,7 +89,7 @@ class BRPlayerListCell: BRCollectionViewCell, BRPlayerProtocol {
|
||||
return BRPlayerControlView.self
|
||||
}
|
||||
|
||||
private lazy var player: BRPlayer = {
|
||||
private(set) lazy var player: BRPlayer = {
|
||||
let player = BRPlayer(controlView: self.controlView)
|
||||
player.playerView = self.playerView
|
||||
player.delegate = self
|
||||
|
@ -33,6 +33,7 @@ class BRPlayer: NSObject {
|
||||
|
||||
private lazy var player: SJBaseVideoPlayer = {
|
||||
let player = SJBaseVideoPlayer()
|
||||
player.delayInSecondsForHiddenPlaceholderImageView = 0
|
||||
player.autoplayWhenSetNewAsset = false
|
||||
player.resumePlaybackWhenAppDidEnterForeground = false
|
||||
player.accurateSeeking = true
|
||||
@ -41,6 +42,7 @@ class BRPlayer: NSObject {
|
||||
player.rotationManager?.isDisabledAutorotation = true
|
||||
player.controlLayerDataSource = self
|
||||
player.resumePlaybackWhenPlayerHasFinishedSeeking = false
|
||||
player.pausedToKeepAppearState = true
|
||||
return player
|
||||
}()
|
||||
|
||||
@ -55,7 +57,9 @@ class BRPlayer: NSObject {
|
||||
}
|
||||
}
|
||||
|
||||
private(set) weak var br_controlView: BRPlayerControlProtocol?;
|
||||
private(set) weak var br_controlView: BRPlayerControlProtocol?
|
||||
///控制层自动隐藏
|
||||
var controlAutomaticallyDisappear = true
|
||||
|
||||
var coverImageView: UIImageView? {
|
||||
return self.player.presentView.placeholderImageView
|
||||
@ -90,6 +94,7 @@ class BRPlayer: NSObject {
|
||||
self.br_controlView = controlView
|
||||
|
||||
setupPlayer()
|
||||
player.controlLayerNeedAppear()
|
||||
}
|
||||
|
||||
func setPlayUrl(url: String) {
|
||||
@ -138,7 +143,21 @@ extension BRPlayer {
|
||||
self.player.gestureController.supportedGestureTypes = .singleTap
|
||||
self.player.gestureController.singleTapHandler = { [weak self] _, _ in
|
||||
guard let self = self else { return }
|
||||
self.br_controlView?.singleTapEvent()
|
||||
if !self.player.isControlLayerAppeared {
|
||||
self.player.controlLayerNeedAppear()
|
||||
} else {
|
||||
self.br_controlView?.singleTapEvent()
|
||||
}
|
||||
}
|
||||
|
||||
player.canAutomaticallyDisappear = { [weak self] player in
|
||||
return self?.controlAutomaticallyDisappear ?? false
|
||||
}
|
||||
|
||||
//控制层显示状态改变
|
||||
player.controlLayerAppearObserver.onAppearChanged = { [weak self] manager in
|
||||
guard let self = self else { return }
|
||||
self.controlView().isHidden = !manager.isAppeared
|
||||
}
|
||||
|
||||
//播放完成回调
|
||||
|
Loading…
x
Reference in New Issue
Block a user