|
@@ -15,6 +15,8 @@ class MVPlayViewController: PQBaseViewController {
|
|
|
var currentIndex: IndexPath?
|
|
|
var currentActionBtn: UIButton? // 记录上次点击按钮
|
|
|
var currentVideoData: PQVideoListModel? // 记录上次点击数据
|
|
|
+ var isRequesting: Bool = false // 是否正在请求数据
|
|
|
+ var isPlayEnd: Bool = false // 是否播放结束
|
|
|
lazy var leftBtn: UIButton = {
|
|
|
let leftBtn = UIButton(type: .custom)
|
|
|
leftBtn.frame = CGRect(x: 0, y: cDevice_iPhoneStatusBarHei, width: cDefaultMargin * 4, height: cDefaultMargin * 4)
|
|
@@ -51,6 +53,7 @@ class MVPlayViewController: PQBaseViewController {
|
|
|
|
|
|
override func viewDidLoad() {
|
|
|
super.viewDidLoad()
|
|
|
+ PQSingletoVideoPlayer.shared.stopPlayer()
|
|
|
view.addSubview(collectionView)
|
|
|
view.addSubview(leftBtn)
|
|
|
if itemsList.count <= 0 {
|
|
@@ -65,6 +68,7 @@ class MVPlayViewController: PQBaseViewController {
|
|
|
|
|
|
PQSingletoVideoPlayer.shared.playStatusBloc = { [weak self] status in
|
|
|
if status == .PQVIDEO_PLAY_STATUS_END {
|
|
|
+ self?.isPlayEnd = true
|
|
|
if ((self?.currentIndex?.item ?? 0) + 1) < (self?.itemsList.count ?? 0) {
|
|
|
// self?.collectionView.scrollToItem(at: IndexPath(item: (self?.currentIndex?.item ?? 0) + 1, section: 0), at: .top, animated: false)
|
|
|
self?.collectionView.contentOffset = CGPoint(x: 0, y: CGFloat((self?.currentIndex?.item ?? 0) + 1) * (self!.collectionView.frame.height))
|
|
@@ -73,7 +77,13 @@ class MVPlayViewController: PQBaseViewController {
|
|
|
}
|
|
|
} else {
|
|
|
(self?.collectionView.visibleCell() as? MVPlayControlViewCell)?.tagClick()
|
|
|
+ self?.loadRequestData(isRefresh: false)
|
|
|
+ }
|
|
|
+ if (self?.currentIndex?.item ?? 0) >= ((self?.itemsList.count ?? 0) - 2) {
|
|
|
+ self?.loadRequestData(isRefresh: false)
|
|
|
}
|
|
|
+ }else if status == .PQVIDEO_PLAY_STATUS_BEGIN{
|
|
|
+ self?.isPlayEnd = false
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -98,13 +108,18 @@ class MVPlayViewController: PQBaseViewController {
|
|
|
/// 请求网络数据
|
|
|
/// - Parameter isRefresh: <#isRefresh description#>
|
|
|
/// - Returns: <#description#>
|
|
|
- func loadRequestData(isRefresh: Bool = true) {
|
|
|
+ func loadRequestData(isRefresh: Bool = true,isAutoPlay:Bool = false) {
|
|
|
+ if isRequesting {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ isRequesting = true
|
|
|
if isRefresh {
|
|
|
pageNum = 1
|
|
|
} else {
|
|
|
pageNum = pageNum + 1
|
|
|
}
|
|
|
MVMineViewModel.userVideoListData(pageNum: pageNum) { [weak self] videoList, _ in
|
|
|
+ self?.isRequesting = false
|
|
|
if videoList != nil, (videoList?.count ?? 0) > 0 {
|
|
|
if isRefresh {
|
|
|
self?.itemsList = videoList!
|
|
@@ -112,7 +127,14 @@ class MVPlayViewController: PQBaseViewController {
|
|
|
self?.itemsList = self!.itemsList + videoList!
|
|
|
}
|
|
|
self?.collectionView.reloadData()
|
|
|
- self?.scrollViewDidEndDecelerating(self!.collectionView)
|
|
|
+ if self?.currentIndex == nil {
|
|
|
+ self?.scrollViewDidEndDecelerating(self!.collectionView)
|
|
|
+ }else if (self?.isPlayEnd ?? false), ((self?.currentIndex?.item ?? 0) + 1) < (self?.itemsList.count ?? 0) {
|
|
|
+ self?.collectionView.contentOffset = CGPoint(x: 0, y: CGFloat((self?.currentIndex?.item ?? 0) + 1) * (self!.collectionView.frame.height))
|
|
|
+ DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.2) { [weak self] in
|
|
|
+ self?.scrollViewDidEndDecelerating(self!.collectionView)
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
self?.pageNum = (self?.pageNum ?? 1) - 1
|
|
|
}
|
|
@@ -154,15 +176,19 @@ extension MVPlayViewController: UICollectionViewDelegate, UICollectionViewDataSo
|
|
|
return
|
|
|
}
|
|
|
let indexPath = collectionView.indexPath(for: cell!)
|
|
|
-// if currentIndex != nil, currentIndex?.item == indexPath?.item {
|
|
|
+ if currentIndex != nil, currentIndex?.item == indexPath?.item,PQSingletoVideoPlayer.shared.playControllerView != nil {
|
|
|
// PQSingletoVideoPlayer.shared.resumePlayer()
|
|
|
-// return
|
|
|
-// }
|
|
|
+ return
|
|
|
+ }
|
|
|
currentIndex = indexPath
|
|
|
let itemData = itemsList[indexPath?.item ?? 0]
|
|
|
itemData.playProgress = 0
|
|
|
+ cell?.pauseBtn.isSelected = false
|
|
|
PQSingletoVideoPlayer.shared.configPlyer(videoData: itemData, controllerView: cell!.coverImageView, renderMode: .RENDER_MODE_FILL_EDGE)
|
|
|
PQSingletoVideoPlayer.shared.resetPlayer()
|
|
|
+ if (indexPath?.item ?? 0) >= itemsList.count - 2 {
|
|
|
+ loadRequestData(isRefresh: false)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// 按钮点击处理
|