|
@@ -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)
|