Selaa lähdekoodia

Merge branch 'master' of https://git.yishihui.com/iOS/BFRecordScreenKit

* 'master' of https://git.yishihui.com/iOS/BFRecordScreenKit:
  录制编辑界面添加常亮,和非常亮代码
  修复切换素材段落闪烁问题
  添加 LOG
  修改视频旋转有可能无效问题
胡志强 3 vuotta sitten
vanhempi
commit
39ac709b4a

+ 4 - 3
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenBaseManager.swift

@@ -22,9 +22,10 @@ class BFRecordScreenBaseManager : NSObject{
     
     var recordItem : BFRecordItemModel?{
         didSet{
-            recordItem?.fetchPlayItemCallBack = {[weak self] model in
-                self?.resetEnv()
-            }
+              //mdf by ak 这里先注释上否则会导致 BFRecordScreenController 类加的fetchPlayItemCallBack 不会被调用不能执行转换操作
+//            recordItem?.fetchPlayItemCallBack = {[weak self] model in
+//                self?.resetEnv()
+//            }
         }
     }
     var playView : GPUImageView?

+ 8 - 2
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenCameraManager.swift

@@ -73,6 +73,8 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
             
             guard let wself = self else { return }
             
+ 
+            BFLog(message: "当前播放器状态: \(wself.avplayer.timeControlStatus.rawValue) \(wself.avplayer.currentItem?.status.rawValue)")
             // 拖动的跳跃,不要修改时间点
             if (wself.dele?.isNormalPlaying ?? false){
                 wself.currentAssetProgress = CMTime(seconds: (currTime + wself.currPlayTime).seconds, preferredTimescale: 1000)
@@ -80,8 +82,12 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
 //            BFLog(1, message: "拖动 currTime: \(currTime.seconds)")
             DispatchQueue.main.async {[weak self] in
                 guard let wself = self else { return }
-                wself.dele?.updateSubtitle(time: wself.currentAssetProgress)
-                wself.locationTo(time: wself.currentAssetProgress)
+                //add by ak 播放状态才进行刷新 UI
+                if(wself.avplayer.timeControlStatus == .playing){
+                    wself.dele?.updateSubtitle(time: wself.currentAssetProgress)
+                    wself.locationTo(time: wself.currentAssetProgress)
+                }
+
             }
             
         }) as? NSKeyValueObservation

+ 5 - 0
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -586,6 +586,7 @@ public class BFRecordScreenController: BFBaseViewController {
         super.viewWillAppear(animated)
         navigationController?.isNavigationBarHidden = true
         hiddenNavigation()
+        UIApplication.shared.isIdleTimerDisabled = true
     }
     
     public override func viewDidAppear(_ animated: Bool) {
@@ -599,6 +600,7 @@ public class BFRecordScreenController: BFBaseViewController {
         super.viewWillDisappear(animated)
         UIApplication.shared.keyWindow?.isUserInteractionEnabled = true
         pause()
+        UIApplication.shared.isIdleTimerDisabled = false
     }
 
     override public func viewDidLoad() {
@@ -2456,6 +2458,9 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
         currItemModelIndex = page
         // 暂停
         pause()
+        //add by ak  BFRecordScreenCameraManager 中的播放器也要暂停那里的进度回调也会刷新 UI 导致出现闪烁 BUG
+        rscmanager.pause()
+ 
         // 如果在录制中,停止录制
         if isRecording {
             endRecord()

+ 3 - 1
BFRecordScreenKit/Classes/RecordScreen/View/Cell/BFVideoCoverViewCell.swift

@@ -27,7 +27,7 @@ open class BFVideoCoverViewCell: BFImageCoverViewCell {
     public func rotationView(){
         if let asset = recordItem?.videoAsset {
             let degress = degressFromVideoFile(asset: asset)
-//            BFLog(1, message: "degress:\(degress)")
+            BFLog(1, message: "recordItem?.videoAsset is degress:\(degress)")
             switch degress {
             case 90:
                 playView.setInputRotation(GPUImageRotationMode(rawValue: 2), at: 0)
@@ -39,6 +39,8 @@ open class BFVideoCoverViewCell: BFImageCoverViewCell {
                 playView.setInputRotation(GPUImageRotationMode(rawValue: 0), at: 0)
                 break
             }
+        }else{
+            BFLog(2, message: "recordItem?.videoAsset is nill ")
         }
     }