Procházet zdrojové kódy

1.update uploadVideo

wenweiwei před 3 roky
rodič
revize
97e2974de0

+ 0 - 0
BFFramework/Classes/selectImage/PQImageCropVC.swift → BFFramework/Classes/SelectImage/PQImageCropVC.swift


+ 0 - 0
BFFramework/Classes/selectImage/PQImageSelectedController.swift → BFFramework/Classes/SelectImage/PQImageSelectedController.swift


+ 0 - 0
BFFramework/Classes/selectImage/PQSelecteVideoItemCell.swift → BFFramework/Classes/SelectImage/PQSelecteVideoItemCell.swift


+ 52 - 51
BFFramework/Classes/selectImage/PQUploadController.swift → BFFramework/Classes/SelectImage/PQUploadController.swift

@@ -6,10 +6,12 @@
 //  Copyright © 2020 BytesFlow. All rights reserved.
 //
 
-import BFUIKit
 import MobileCoreServices
 import Photos
 import UIKit
+import BFCommonKit
+
+let playerHeaderH: CGFloat = cScreenWidth * (250 / 375)
 
 open class PQUploadController: BFBaseViewController {
     // 最大的宽度
@@ -133,10 +135,8 @@ open class PQUploadController: BFBaseViewController {
         let backBtn = UIButton(type: .custom)
         backBtn.frame = CGRect(x: 0, y: cDevice_iPhoneStatusBarHei, width: cDefaultMargin * 4, height: cDefaultMargin * 4)
         backBtn.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: -5, right: 0)
-
-        backBtn.setImage(UIImage.moduleImage(named: "icon_blanc_back", moduleName: "BFFramework", isAssets: false)?.withRenderingMode(.alwaysTemplate), for: .normal)
+        backBtn.setImage(UIImage(named: "ic_close_black"), for: .normal)
         backBtn.addTarget(self, action: #selector(backBtnClick), for: .touchUpInside)
-        backBtn.imageView?.tintColor = BFConfig.shared.styleTitleColor
         return backBtn
     }()
 
@@ -152,26 +152,21 @@ open class PQUploadController: BFBaseViewController {
         let emptyData = BFEmptyModel()
         emptyData.title = "哦呜~ 你没有可上传的视频~"
         emptyData.emptyImageName = "video_empty"
-        emptyData.netDisRefreshBgColor = UIColor.hexColor(hexadecimal: "#FA6400")
-        emptyData.netDisTitle = "内容加载失败"
-        emptyData.netDisTitleColor = UIColor.hexColor(hexadecimal: "#333333")
-        emptyData.netemptyDisImage = UIImage(named: "empty_netDis_icon")
-        emptyData.netDisRefreshTitle = NSMutableAttributedString(string: "重新加载", attributes: [.font: UIFont.systemFont(ofSize: 16, weight: .medium), .foregroundColor: UIColor.white])
         return emptyData
     }()
 
     public lazy var emptyRemindView: BFEmptyRemindView = {
-        let remindView = BFEmptyRemindView(frame: CGRect(x: 0, y: cDevice_iPhoneNavBarAndStatusBarHei, width: cScreenWidth, height: cScreenHeigth - cDevice_iPhoneNavBarAndStatusBarHei))
-        remindView.isHidden = true
-        remindView.emptyData = anthorEmptyData
-        view.addSubview(remindView)
-        remindView.fullRefreshBloc = { [weak self] _, _ in
+        let emptyRemindView = BFEmptyRemindView(frame: CGRect(x: 0, y: cDevice_iPhoneNavBarAndStatusBarHei, width: cScreenWidth, height: cScreenHeigth - cDevice_iPhoneNavBarAndStatusBarHei))
+        emptyRemindView.isHidden = true
+        emptyRemindView.emptyData = anthorEmptyData
+        view.addSubview(emptyRemindView)
+        emptyRemindView.fullRefreshBloc = { [weak self, weak emptyRemindView] _, _ in
             self?.isJumpToAuthorization = true
-            if self?.emptyRemindView.refreshBtn.currentTitle == "授予权限" {
+            if emptyRemindView?.refreshBtn.currentTitle == "授予权限" {
                 openAppSetting()
             }
         }
-        return remindView
+        return emptyRemindView
     }()
 
     public lazy var collectionView: UICollectionView = {
@@ -187,7 +182,7 @@ open class PQUploadController: BFBaseViewController {
         } else {
             automaticallyAdjustsScrollViewInsets = false
         }
-        collectionView.backgroundColor = .clear
+        collectionView.backgroundColor = UIColor.hexColor(hexadecimal: "#191919")
         return collectionView
     }()
 
@@ -291,6 +286,7 @@ open class PQUploadController: BFBaseViewController {
         playerHeaderView.isUserInteractionEnabled = true
         playerHeaderView.contentMode = .scaleAspectFit
         playerHeaderView.clipsToBounds = true
+        playerHeaderView.backgroundColor = UIColor.black
         return playerHeaderView
     }()
 
@@ -298,23 +294,20 @@ open class PQUploadController: BFBaseViewController {
         let selecteBtn = UIButton(frame: CGRect(x: deleteBtn.frame.maxX + cDefaultMargin, y: 0, width: cScreenWidth - nextBtn.frame.width - deleteBtn.frame.maxX - cDefaultMargin * 5, height: cDevice_iPhoneTabBarHei))
         selecteBtn.titleLabel?.lineBreakMode = .byTruncatingTail
         selecteBtn.setTitle("全部", for: .normal)
-
-        selecteBtn.setImage(UIImage.moduleImage(named: "icon_uploadVideo_more", moduleName: "BFFramework", isAssets: false)?.withRenderingMode(.alwaysTemplate), for: .normal)
-        selecteBtn.setTitleColor(BFConfig.shared.styleTitleColor, for: .normal)
+        selecteBtn.setImage(UIImage(named: "icon_uploadVideo_more"), for: .normal)
+        selecteBtn.setTitleColor(UIColor.white, for: .normal)
         selecteBtn.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .medium)
         selecteBtn.tag = 2
-        selecteBtn.imagePosition(at: PQButtonImageEdgeInsetsStyle.right, space: cDefaultMargin / 2)
-        selecteBtn.imageView?.tintColor = BFConfig.shared.styleTitleColor
+        selecteBtn.imagePosition(at: .right, space: cDefaultMargin / 2)
         selecteBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
         return selecteBtn
     }()
 
     public lazy var deleteBtn: UIButton = {
         let deleteBtn = UIButton(frame: CGRect(x: cDefaultMargin, y: 0, width: cDefaultMargin * 4, height: cDevice_iPhoneTabBarHei))
-        deleteBtn.setImage(UIImage.moduleImage(named: "icon_blanc_back", moduleName: "BFFramework", isAssets: false)?.withRenderingMode(.alwaysTemplate), for: .normal)
+        deleteBtn.setImage(UIImage(named: "upload_delete"), for: .normal)
         deleteBtn.tag = 1
         deleteBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
-        deleteBtn.imageView?.tintColor = BFConfig.shared.styleTitleColor
         return deleteBtn
     }()
 
@@ -325,15 +318,15 @@ open class PQUploadController: BFBaseViewController {
         nextBtn.titleLabel?.font = UIFont.systemFont(ofSize: 13, weight: .medium)
         nextBtn.tag = 3
         nextBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
-        nextBtn.backgroundColor = UIColor.hexColor(hexadecimal: BFConfig.shared.styleColor.rawValue)
-        nextBtn.setTitleColor(.white, for: .normal)
+        nextBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#333333")
+        nextBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#999999"), for: .normal)
         return nextBtn
     }()
 
     public lazy var bottomView: UIView = {
         let bottomView = UIView(frame: CGRect(x: 0, y: cDefaultMargin * 2, width: cScreenWidth, height: cDevice_iPhoneNavBarHei))
         bottomView.addSubview(selecteBtn)
-        bottomView.backgroundColor = BFConfig.shared.styleBackGroundColor
+        bottomView.backgroundColor = UIColor.hexColor(hexadecimal: "#191919")
         selecteBtn.center.y = nextBtn.center.y
         bottomView.addSubview(deleteBtn)
         bottomView.addSubview(nextBtn)
@@ -341,7 +334,7 @@ open class PQUploadController: BFBaseViewController {
         return bottomView
     }()
 
-    override open func viewDidLoad() {
+    open override func viewDidLoad() {
         super.viewDidLoad()
 
         view.backgroundColor = BFConfig.shared.editCoverimageSelectedbackgroundColor
@@ -356,7 +349,7 @@ open class PQUploadController: BFBaseViewController {
         //        PHPhotoLibrary.shared().unregisterChangeObserver(self)
     }
 
-    override open func viewDidDisappear(_ animated: Bool) {
+    open override func viewDidDisappear(_ animated: Bool) {
         super.viewDidDisappear(animated)
         if !isAssetImage {
             avPlayer.pause()
@@ -364,7 +357,7 @@ open class PQUploadController: BFBaseViewController {
         }
     }
 
-    override open func viewWillAppear(_ animated: Bool) {
+    open override func viewWillAppear(_ animated: Bool) {
         super.viewDidAppear(animated)
         if !isAssetImage {
             if selectedData != nil {
@@ -378,7 +371,7 @@ open class PQUploadController: BFBaseViewController {
         addPlayerItemObserver()
     }
 
-    override open func viewWillDisappear(_ animated: Bool) {
+    open override func viewWillDisappear(_ animated: Bool) {
         super.viewWillDisappear(animated)
         removePlayerItemObserver()
     }
@@ -488,10 +481,11 @@ open class PQUploadController: BFBaseViewController {
                 }
             }
         }
-//        if !isAssetImage {
-//            // 视频上传相关上报
+        if !isAssetImage {
+            // 视频上传相关上报
+            // MARK: SanW--待修改-2021.11.08
 //            PQEventTrackViewModel.baseReportUpload(businessType: .bt_pageView, objectType: .ot_pageView, pageSource: .sp_upload_videoSelect, extParams: ["source": getSourceType().rawValue, "projectId": getMakeVideoProjectId() ?? "", "draftboxId": getMakeVideoDraftboxId() ?? ""], remindmsg: "上传相关")
-//        }
+        }
     }
 
     // 转化处理获取到的相簿
@@ -517,10 +511,11 @@ open class PQUploadController: BFBaseViewController {
         switch sender.tag {
         case 1: // 返回
             navigationController?.popViewController(animated: true)
-//            if !isAssetImage {
-//                // 视频上传相关上报
+            if !isAssetImage {
+                // 视频上传相关上报
+                // MARK: SanW--待修改-2021.11.08
 //                PQEventTrackViewModel.baseReportUpload(businessType: .bt_buttonClick, objectType: .ot_up_backBtn, pageSource: .sp_upload_videoSelect, extParams: ["source": getSourceType().rawValue, "projectId": getMakeVideoProjectId() ?? "", "draftboxId": getMakeVideoDraftboxId() ?? ""], remindmsg: "上传相关")
-//            }
+            }
         case 2: // 筛选
             showCollects()
         case 3: // 下一步
@@ -528,17 +523,23 @@ open class PQUploadController: BFBaseViewController {
                 cShowHUB(superView: nil, msg: isAssetImage ? "请选择图片" : "请选择视频")
                 return
             }
-//            if !isAssetImage {
-//                avPlayer.pause()
-//                playBtn.isHidden = false
+            if !isAssetImage {
+                avPlayer.pause()
+                playBtn.isHidden = false
+                // MARK: SanW--待修改-2021.11.08
+//                let publicVc = PQPublicVideoController()
+//                uploadData?.videoFromScene = .UploadNormal
+//                publicVc.uploadData = selectedData
+//                navigationController?.pushViewController(publicVc, animated: true)
+//                return
 //                let coverVc = PQUploadHandingController()
 //                selectedData?.videoFromScene = .UploadNormal
 //                coverVc.uploadData = selectedData
 //                navigationController?.pushViewController(coverVc, animated: true)
-//                // 视频上传相关上报
-//                PQEventTrackViewModel.baseReportUpload(businessType: .bt_buttonClick, objectType: .ot_up_nextBtn, pageSource: .sp_upload_videoSelect, extParams: ["source": videoUploadSourceType.videoUpload.rawValue, "projectId": getMakeVideoProjectId() ?? "", "draftboxId": getMakeVideoDraftboxId() ?? ""], remindmsg: "上传相关")
-//                return
-//            }
+                // 视频上传相关上报
+//                PQEventTrackViewModel.baseReportUpload(businessType: .bt_buttonClick, objectType: .ot_up_nextBtn, pageSource: .sp_upload_videoSelect, extParams: ["source": getSourceType().rawValue, "projectId": getMakeVideoProjectId() ?? "", "draftboxId": getMakeVideoDraftboxId() ?? ""], remindmsg: "上传相关")
+                return
+            }
             imageManager.requestImage(for: (selectedData?.asset)!, targetSize: itemSize, contentMode: .aspectFill, options: nil) { [weak self] image, _ in
                 self?.selectedData?.image = image
                 let vc = PQImageCropVC(image: (self?.selectedData?.image)!, aspectWidth: self?.videoWidth ?? 0.0, aspectHeight: self?.videoHeight ?? 0.0)
@@ -574,7 +575,7 @@ open class PQUploadController: BFBaseViewController {
         }
     }
 
-    @objc func showCategoryView() {
+    @objc public func showCategoryView() {
         categoryView.isHidden = false
         categoryView.alpha = 0
         view.bringSubviewToFront(categoryView)
@@ -653,7 +654,7 @@ extension PQUploadController: UICollectionViewDelegate, UICollectionViewDataSour
                 cell.uploadData = itemData
                 if itemData.image == nil, itemData.asset != nil {
                     cell.representedAssetIdentifier = itemData.asset?.localIdentifier
-                    imageManager.requestImage(for: itemData.asset!, targetSize: itemSize, contentMode: .aspectFill, options: nil) { [weak self, weak cell] image, info in
+                    imageManager.requestImage(for: itemData.asset!, targetSize: itemSize, contentMode: .aspectFill, options: nil) {[weak self, weak cell] image, info in
                         if info?.keys.contains("PHImageResultIsDegradedKey") ?? false, "\(info?["PHImageResultIsDegradedKey"] ?? "0")" == "0", cell?.representedAssetIdentifier == itemData.asset?.localIdentifier {
                             if image != nil {
                                 itemData.image = image
@@ -662,7 +663,7 @@ extension PQUploadController: UICollectionViewDelegate, UICollectionViewDataSour
                                 let option = PHImageRequestOptions()
                                 option.isNetworkAccessAllowed = true
                                 option.resizeMode = .fast
-                                self?.imageManager.requestImageData(for: itemData.asset!, options: option) { [weak cell] data, _, _, _ in
+                                self?.imageManager.requestImageData(for: itemData.asset!, options: option) {[weak cell] data, _, _, _ in
                                     if data != nil {
                                         let image = UIImage(data: data!)
                                         itemData.image = image
@@ -683,7 +684,7 @@ extension PQUploadController: UICollectionViewDelegate, UICollectionViewDataSour
             let asset = itemData.categoryList.object(at: 0)
             if itemData.image == nil {
                 cell.representedAssetIdentifier = asset.localIdentifier
-                imageManager.requestImage(for: asset, targetSize: itemSize, contentMode: .aspectFill, options: nil) { [weak cell] image, info in
+                imageManager.requestImage(for: asset, targetSize: itemSize, contentMode: .aspectFill, options: nil) {[weak cell] image, info in
                     if info?.keys.contains("PHImageResultIsDegradedKey") ?? false, "\(info?["PHImageResultIsDegradedKey"] ?? "0")" == "0", cell?.representedAssetIdentifier == asset.localIdentifier {
                         itemData.image = image
                         cell?.uploadData = itemData
@@ -788,7 +789,7 @@ extension PQUploadController: UICollectionViewDelegate, UICollectionViewDataSour
                                 self?.playerHeaderView.layer.insertSublayer(self!.playerLayer, at: 0)
                             }
                             self?.avPlayer.play()
-                            //                            self?.playerHeaderView.image = itemData.image
+//                            self?.playerHeaderView.image = itemData.image
 
                             let tracks = (playerItem?.asset as? AVURLAsset)?.tracks(withMediaType: .video)
                             if tracks != nil, (tracks?.count ?? 0) > 0 {
@@ -829,7 +830,7 @@ extension PQUploadController: UICollectionViewDelegate, UICollectionViewDataSour
             allPhotos = categoryData[indexPath.item].categoryList
             catagerySelectedIndex = indexPath
             selecteBtn.setTitle(categoryData[indexPath.item].title, for: .normal)
-            selecteBtn.imagePosition(at: PQButtonImageEdgeInsetsStyle.right, space: cDefaultMargin / 2)
+            selecteBtn.imagePosition(at: .right, space: cDefaultMargin / 2)
             if !isAssetImage {
                 playBtn.isHidden = false
                 sliderView.isHidden = true
@@ -909,7 +910,7 @@ extension PQUploadController {
         playerItem?.removeObserver(self, forKeyPath: "status")
     }
 
-    override public func observeValue(forKeyPath keyPath: String?, of object: Any?, change _: [NSKeyValueChangeKey: Any]?, context _: UnsafeMutableRawPointer?) {
+    open override func observeValue(forKeyPath keyPath: String?, of object: Any?, change _: [NSKeyValueChangeKey: Any]?, context _: UnsafeMutableRawPointer?) {
         if object is AVPlayerItem, keyPath == "status" {
             BFLog(message: "(object as! AVPlayerItem).status = \((object as! AVPlayerItem).status.rawValue)")
             BFLoadingHUB.shared.dismissHUB(superView: playerHeaderView)