diff --git a/Veloria/Class/Me/View/VPVipAlertView.swift b/Veloria/Class/Me/View/VPVipAlertView.swift index c023f54..a599271 100644 --- a/Veloria/Class/Me/View/VPVipAlertView.swift +++ b/Veloria/Class/Me/View/VPVipAlertView.swift @@ -218,7 +218,7 @@ extension VPVipAlertView { bgView.snp.makeConstraints { make in make.top.left.right.equalToSuperview() make.width.equalTo(274) - make.height.equalTo(330) +// make.height.equalTo(330) } bgIconImageView.snp.makeConstraints { make in @@ -249,6 +249,7 @@ extension VPVipAlertView { } vipBgView.snp.makeConstraints { make in + make.top.equalTo(textLabel.snp.bottom).offset(15) make.centerX.equalToSuperview() make.bottom.equalToSuperview().offset(-22) } diff --git a/Veloria/Class/Player/Controller/VPDetailPlayerViewController.swift b/Veloria/Class/Player/Controller/VPDetailPlayerViewController.swift index 3e30e26..87c3c5f 100644 --- a/Veloria/Class/Player/Controller/VPDetailPlayerViewController.swift +++ b/Veloria/Class/Player/Controller/VPDetailPlayerViewController.swift @@ -103,7 +103,6 @@ class VPDetailPlayerViewController: VPVideoPlayerViewController { //播放完成上报进度为0 VPVideoAPI.requestUploadPlayProgress(shortPlayId: shortPlayId, videoId: videoId, seconds: 0) - self.viewModel.currentPlayer?.videoInfo?.play_seconds = 0 } super.currentPlayFinish() @@ -253,7 +252,7 @@ extension VPDetailPlayerViewController { if currentTime >= duration { time = 0 } - self.viewModel.currentPlayer?.videoInfo?.play_seconds = time * 1000 +// self.viewModel.currentPlayer?.videoInfo?.play_seconds = time * 1000 guard let shortPlayId = videoInfo?.short_play_id, let videoId = videoInfo?.short_play_video_id else { return } //上报播放时长 diff --git a/Veloria/Class/Player/Controller/VPVideoPlayerViewController.swift b/Veloria/Class/Player/Controller/VPVideoPlayerViewController.swift index 0882fa6..bdd34cd 100644 --- a/Veloria/Class/Player/Controller/VPVideoPlayerViewController.swift +++ b/Veloria/Class/Player/Controller/VPVideoPlayerViewController.swift @@ -205,6 +205,8 @@ class VPVideoPlayerViewController: VPViewController { ///当前播放完成 子类可重写 func currentPlayFinish() { + self.viewModel.currentPlayer?.videoInfo?.play_seconds = 0 + if self.autoNextEpisode { scrollToNextEpisode() } @@ -212,6 +214,16 @@ class VPVideoPlayerViewController: VPViewController { ///当前播放进度变更 子类可重写 func currentPlayTimeDidChange(time: Int) { + guard time > 1 else { return } + + let currentTime = self.viewModel.currentPlayer?.currentPosition ?? 0 + let duration = self.viewModel.currentPlayer?.duration ?? 0 + + var time = currentTime + if currentTime >= duration { + time = 0 + } + self.viewModel.currentPlayer?.videoInfo?.play_seconds = time * 1000 } } @@ -378,6 +390,7 @@ extension VPVideoPlayerViewController { @objc func didBecomeActiveNotification() { if getDataCount() > 0 && self.viewModel.isPlaying && isDidAppear { + self.viewModel.currentPlayer?.prepare()//进入后台回来后会出现播放器无法正常播放的情况,需要重置播放器 self.viewModel.currentPlayer?.start() } } diff --git a/Veloria/Class/Player/View/VPVideoPlayerCell.swift b/Veloria/Class/Player/View/VPVideoPlayerCell.swift index cea8018..6c26140 100644 --- a/Veloria/Class/Player/View/VPVideoPlayerCell.swift +++ b/Veloria/Class/Player/View/VPVideoPlayerCell.swift @@ -124,7 +124,9 @@ class VPVideoPlayerCell: VPCollectionViewCell, VPPlayerProtocol { } func prepare() { - + player.setPlayUrl(url: videoInfo?.video_url ?? "") +// self.player.stop() +// self.player.prepare() } func start() { diff --git a/Veloria/Libs/Player/VPPlayer.swift b/Veloria/Libs/Player/VPPlayer.swift index c67927d..24f5cc4 100644 --- a/Veloria/Libs/Player/VPPlayer.swift +++ b/Veloria/Libs/Player/VPPlayer.swift @@ -148,9 +148,9 @@ class VPPlayer: NSObject { func setPlayUrl(url: String) { let proxyURL = KTVHTTPCache.proxyURL(withOriginalURL: URL(string: url)) - if proxyURL != self.player.assetURL { - self.player.assetURL = proxyURL - } +// if proxyURL != self.player.assetURL { +// } + self.player.assetURL = proxyURL // self.prepare() } @@ -224,26 +224,30 @@ extension VPPlayer { guard let self = self else { return } if playState == .playStatePlaying && !isPlaying { self.pause() - } else if playState == .playStatePaused, isPlaying, self.interruptionType != .began { + } else if playState == .playStatePaused, isPlaying { self.start() } switch playState { case .playStateUnknown: + vpLog(message: "播放状态====playStateUnknown") self.playState = .unknown case .playStatePlaying: + vpLog(message: "播放状态====playStatePlaying") self.playState = .playing case .playStatePaused: + vpLog(message: "播放状态====playStatePaused") self.playState = .paused case .playStatePlayStopped: + vpLog(message: "播放状态====playStatePlayStopped") self.playState = .stopped case .playStatePlayFailed: + vpLog(message: "播放状态====playStatePlayFailed") self.playState = .failed default: self.playState = .unknown } self.delegate?.vp_player?(self, playStateDidChanged: self.playState) - vpLog(message: "播放状态====\(playState)") } //加载状态 @@ -251,22 +255,27 @@ extension VPPlayer { guard let self = self else { return } if loadState == .playable && !isPlaying { self.pause() - } else if loadState == .playable, isPlaying, self.player.playState != .playStatePlaying, self.interruptionType != .began { + } else if loadState == .playable, isPlaying, self.player.playState != .playStatePlaying { self.start() } switch loadState { - case .prepare: - self.loadState = .prepare - case .playable: - self.loadState = .playable - case .playthroughOK: - self.loadState = .playthroughOK - case .stalled: - self.loadState = .stalled - default: - self.loadState = .unknown - break + case .prepare: + vpLog(message: "加载状态====prepare\(loadState)") + self.loadState = .prepare + case .playable: + vpLog(message: "加载状态====playable\(loadState)") + self.loadState = .playable + case .playthroughOK: + vpLog(message: "加载状态====playthroughOK\(loadState)") + self.loadState = .playthroughOK + case .stalled: + vpLog(message: "加载状态====stalled\(loadState)") + self.loadState = .stalled + default: + vpLog(message: "加载状态====unknown\(loadState)") + self.loadState = .unknown + break } self.delegate?.vp_player?(self, loadStateDidChange: self.loadState) } @@ -317,7 +326,7 @@ extension VPPlayer { self.player.play() } } -// vpLog(message: "======音频发生变化\(interruptionType)") + vpLog(message: "======音频发生变化\(interruptionType)") }