Compare commits

...

3 Commits

Author SHA1 Message Date
zeng
4f402efabf 修复bug 2025-06-16 10:15:58 +08:00
zeng
6e970b4a73 Merge branch 'main' of https://git.qinjiu8.com/zengjx/MoviaBox 2025-06-16 10:15:26 +08:00
zeng
8ebd677a1e 修复播放详情bug 2025-06-16 09:25:23 +08:00
6 changed files with 41 additions and 23 deletions

View File

@ -25,6 +25,7 @@ class SPVideoAPI: NSObject {
var param = SPNetworkParameters(path: "/getVideoDetails")
param.method = .get
param.parameters = parameters
param.isLoding = true
SPNetwork.request(parameters: param) { (response: SPNetworkResponse<SPVideoDetailModel>) in
completer?(response.data)

View File

@ -127,7 +127,7 @@ class SPPlayerDetailViewController: SPPlayerListViewController {
//0
SPVideoAPI.requestUploadPlayTime(shortPlayId: shortPlayId, videoId: videoId, seconds: 0)
self.viewModel.currentPlayer?.videoInfo?.play_seconds = 0
// self.viewModel.currentPlayer?.videoInfo?.play_seconds = 0
}
super.currentPlayFinish()
}
@ -235,6 +235,10 @@ extension SPPlayerDetailViewController {
let view = SPPlayBuyView()
view.shortPlayId = videoInfo.short_play_id
view.videoId = videoInfo.short_play_video_id
view.buyFinishBlock = { [weak self] in
guard let self = self else { return }
self.requestDetailData(indexPath: self.currentIndexPath)
}
view.present(in: nil)
}
@ -286,7 +290,7 @@ extension SPPlayerDetailViewController {
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 }
//
@ -295,15 +299,15 @@ extension SPPlayerDetailViewController {
}
@objc private func buyVipFinishNotification() {
guard SPLoginManager.manager.userInfo?.is_vip == true else { return }
self.detailModel?.episodeList?.forEach({
$0.is_lock = false
})
self.reloadData { [weak self] in
self?.play()
}
// guard SPLoginManager.manager.userInfo?.is_vip == true else { return }
//
// self.detailModel?.episodeList?.forEach({
// $0.is_lock = false
// })
//
// self.reloadData { [weak self] in
// self?.play()
// }
}
///
@objc private func reachabilityDidChangeNotification() {
@ -368,7 +372,7 @@ extension SPPlayerDetailViewController {
extension SPPlayerDetailViewController {
private func requestDetailData() {
private func requestDetailData(indexPath: IndexPath? = nil) {
guard let shortPlayId = self.shortPlayId else { return }
isShowRecommand = false
recommandTimer?.invalidate()
@ -382,7 +386,10 @@ extension SPPlayerDetailViewController {
self.reloadData { [weak self] in
guard let self = self else { return }
if let videoInfo = self.detailModel?.video_info {
if let indexPath = indexPath, indexPath.row < (model.episodeList?.count ?? 0) {
self.scrollToItem(indexPath: indexPath, animated: false)
} else if let videoInfo = self.detailModel?.video_info {
var row: Int?
self.detailModel?.episodeList?.enumerated().forEach({
if $1.id == videoInfo.id {
@ -390,11 +397,7 @@ extension SPPlayerDetailViewController {
}
})
if let row = row {
self.scrollToItem(indexPath: IndexPath(row: row, section: 0), animated: false) { [weak self] in
guard let self = self else { return }
//
// self.viewModel.currentPlayer?.seekToTime(toTime: (videoInfo.play_seconds ?? 0) / 1000)
}
self.scrollToItem(indexPath: .init(row: row, section: 0), animated: false)
} else {
self.scrollToItem(indexPath: .init(row: 0, section: 0), animated: false)
}

View File

@ -231,11 +231,21 @@ class SPPlayerListViewController: SPViewController {
if self.autoNextEpisode {
scrollToNextEpisode()
}
self.viewModel.currentPlayer?.videoInfo?.play_seconds = 0
}
///
func currentPlayTimeDidChange(time: Int) {
let currentTime = self.viewModel.currentPlayer?.currentPosition ?? 0
// let duration = self.viewModel.currentPlayer?.duration ?? 0
//
// var time = currentTime
// if currentTime >= duration {
// time = 0
// }
if time > 1 {
self.viewModel.currentPlayer?.videoInfo?.play_seconds = time * 1000
}
}
}
@ -387,6 +397,7 @@ extension SPPlayerListViewController {
@objc func didBecomeActiveNotification() {
if getDataCount() > 0 && self.viewModel.isPlaying && isDidAppear {
self.viewModel.currentPlayer?.prepare()
self.viewModel.currentPlayer?.start()
}
}

View File

@ -9,6 +9,8 @@ import UIKit
class SPPlayBuyView: HWPanModalContentView {
var buyFinishBlock: (() -> Void)?
var shortPlayId: String? {
didSet {
rechargeView.shortPlayId = shortPlayId
@ -122,6 +124,7 @@ extension SPPlayBuyView {
guard let self = self else { return }
self.rechargeView.userInfo = SPLoginManager.manager.userInfo
}
self.buyFinishBlock?()
self.dismiss(animated: true) {

View File

@ -134,7 +134,7 @@ class SPPlayerListCell: SPCollectionViewCell, SPPlayerProtocol {
var playerFinishHadle: (() -> Void)?
func prepare() {
// player.prepare()
player.setPlayUrl(url: videoInfo?.video_url ?? "")
}
func start() {

View File

@ -148,9 +148,9 @@ class SPPlayer: 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()
}