控制层自动隐藏

This commit is contained in:
zeng 2025-08-02 10:55:04 +08:00
parent a22254bc39
commit a2dfc4aac5
4 changed files with 32 additions and 3 deletions

View File

@ -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) {

View File

@ -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")
}
}

View File

@ -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

View File

@ -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
}
//