فهرست منبع

Merge branch 'dev' into dev-130

* dev:
  滑动半屏不重新播放视频
  首页隐藏后暂停音乐
  fix: 暂停后重新定位播放点的问题;重复调用playvideo函数的问题
huzhiqiang 3 سال پیش
والد
کامیت
bc98c65b72

+ 15 - 6
MusicVideoPlus/Classes/Modules/Home/Controllers/MVHomeController.swift

@@ -147,13 +147,18 @@ class MVHomeController: MVBaseController {
         super.viewWillDisappear(animated)
         controlPlayrPasueOrResume(isPause: true)
     }
+    
+    override func viewDidDisappear(_ animated: Bool) {
+        super.viewDidDisappear(animated)
+        controlPlayrPasueOrResume(isPause: true)
+    }
 
     func getData() {
  
         PQLoadingHUB.shared.showHUB(superView:view)
         MVHomeViewModel.getHomeHotVideos { [weak self] hotVideos, msg in
             if(msg == nil){
-                BFLog(message: "hotVideos count is :\(hotVideos.count)")
+                BFLog(1, message: "hotVideos count is :\(hotVideos.count)")
                 PQLoadingHUB.shared.dismissHUB(superView:(self?.view)!)
                 self?.showNetworkError(isHidden: true)
                 self?.refreshData(hotVideos: hotVideos)
@@ -204,7 +209,7 @@ class MVHomeController: MVBaseController {
         }
         viewListView.reloadData()
         // 自动播放第一个视频 确保 reloaddata 完成
-        playVideo(page: 0)
+//        playVideo(page: 0)
     }
 
     override func viewDidLoad() {
@@ -451,7 +456,7 @@ extension MVHomeController {
     /// 播放指定位置的视频
     /// - Parameter page: 视频数据位置
     func playVideo(page: Int) {
- 
+        BFLog(1, message: "aa : playVideo")
         DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.05) {
             if !(UIViewController.getCurrentViewController()?.isMember(of: MVHomeController.self))! {
                 BFLog(message: "当前显示的界面不是在首界面,不进行播放")
@@ -490,7 +495,7 @@ extension MVHomeController {
                 
                     
                     self.controlPlayrPasueOrResume(isPause: false)
-           
+                    
 
                 } else {
                     BFLog(message: "播放不成功: cell:\(String(describing: cell)) mVideos:\(self.mVideos.count) showProtocal: is \(String(describing: showProtocal))")
@@ -515,6 +520,10 @@ extension MVHomeController {
             BFLog(message: "rootViewController is \(String(describing: rootViewController))")
             if  cell != nil && cell?.videoData != nil{
                 cell?.pauseView.isHidden = true
+                if cell?.videoData?.videoId == PQSingletoVideoPlayer.shared.playVideoData?.videoId && PQSingletoVideoPlayer.shared.isPlayBegin {
+                    PQSingletoVideoPlayer.shared.resumePlayer()
+                    return
+                }
                 PQSingletoVideoPlayer.shared.configPlyer(videoData: (cell?.videoData)!, controllerView: cell!.converView)
                 PQSingletoVideoPlayer.shared.startPlayr()
                 PQSingletoVideoPlayer.shared.progressBloc = { [weak self] _, playProgress, duration in
@@ -530,10 +539,10 @@ extension MVHomeController {
                         PQSingletoVideoPlayer.shared.playVideoData!.playProgress = 0
                         if (self?.lastBnnerSelectIndex.row ?? 0) < (self?.mAllVideos.count ?? 0) - 1 {
                             self?.lastBnnerSelectIndex = IndexPath(row: (self?.lastBnnerSelectIndex.row ?? 0) + 1, section: 0)
-                            self?.playVideo(page: (self?.lastBnnerSelectIndex ?? IndexPath(row: 0, section: 0)).row)
+//                            self?.playVideo(page: (self?.lastBnnerSelectIndex ?? IndexPath(row: 0, section: 0)).row)
 
                             // 视频列表跳转
-                            self?.viewListView.currentIndex = (self?.lastBnnerSelectIndex ?? IndexPath(row: 0, section: 0)).row
+//                            self?.viewListView.currentIndex = (self?.lastBnnerSelectIndex ?? IndexPath(row: 0, section: 0)).row
                             self?.viewListView.scrollToItem(at: (self?.lastBnnerSelectIndex ?? IndexPath(row: 0, section: 0)).row, animated: false)
 
                         } else {

+ 16 - 12
MusicVideoPlus/Classes/Modules/Home/Views/Banner/MVBanner.swift

@@ -29,6 +29,7 @@ public class MVBanner: UIView {
     
     public var isAutoPlay: Bool = true
     public var autoTimeInterval: TimeInterval = 0
+    var currentPage = -1
     public var isShowPageControl: Bool = true {
         didSet {
             self.pageControl.isHidden = !self.isShowPageControl
@@ -68,12 +69,12 @@ public class MVBanner: UIView {
     public override func layoutSubviews() {
         super.layoutSubviews()
         self.collectionView.frame = self.bounds
-        var size = self.pageControl.size(forNumberOfPages: self.pageControl.numberOfPages)
-        size.width = min(self.flowLayout.itemSize.width, size.width)
-        self.pageControl.frame = CGRect(origin: .zero, size: size)
-        var center = self.center
-        center.y = self.flowLayout.itemSize.height - self.pageControl.frame.height * 0.5
-        self.pageControl.center = center
+//        var size = self.pageControl.size(forNumberOfPages: self.pageControl.numberOfPages)
+//        size.width = min(self.flowLayout.itemSize.width, size.width)
+//        self.pageControl.frame = CGRect(origin: .zero, size: size)
+//        var center = self.center
+//        center.y = self.flowLayout.itemSize.height - self.pageControl.frame.height * 0.5
+//        self.pageControl.center = center
     }
     
     private func setupSubviews() {
@@ -119,13 +120,14 @@ fileprivate extension MVBanner {
         return IndexPath(item: self.index(realIndex: realIndex), section: 0)
     }
     func setCurrentPage(_ page: Int) {
+        if currentPage == page{
+            return
+        }
+        
         if (delegate?.responds(to: #selector(delegate?.pageControl(currentPage:))) ?? false) {
             self.delegate?.pageControl?(currentPage: page)
-        } else {
-            if self.pageControl.currentPage != page {
-                self.pageControl.currentPage = page
-            }
         }
+        currentPage = page
     }
     func checkRealOutOfBounds() {
         if self.currentIndex <= (MVInsetCount - 1) {
@@ -184,8 +186,10 @@ public extension MVBanner {
     final func reloadData() {
         let count = self.dataSource?.numberOfItems() ?? 0
         self.collectionView.isUserInteractionEnabled = count > 1
-        self.collectionView.reloadData()
-        self.scrollToItem(realAt: 0, animated: true)
+        if count > 0{
+            self.collectionView.reloadData()
+            self.scrollToItem(realAt: 0, animated: true)            
+        }
     }
     final func scrollToItem(realAt index: Int, animated: Bool) {
         let indexPath = self.indexPath(realIndex: index)