Quellcode durchsuchen

数据有效性判断

harry vor 3 Jahren
Ursprung
Commit
ccd19417bb

+ 2 - 2
BFRecordScreenKit/Classes/BFRecordExport.swift

@@ -378,11 +378,11 @@ public class BFRecordExport {
                 }
             }
 
-            BFLog(1, message: "导出设置的码率为:\(Double(orgeBitRate)/1024.0/1024.0)Mb")
+            BFLog(1, message: String(format: "导出设置的码率为:%.3f MB", Double(orgeBitRate)/1024.0/1024.0/8.0))
             let preSize = Double(orgeBitRate) * totalDuration / (1024*1024*8)
             let freeSize = PQBridgeObject.getPhoneDiskFreeSize()
             if preSize + 100.0 > freeSize { // 存储完后磁盘剩余至少100M
-                let error = NSError(domain: "err", code: ExportError.DiskNoSpace.rawValue, userInfo: ["msg":"磁盘空间不足"])
+                let error = NSError(domain: "err", code: ExportError.DiskNoSpace.rawValue, userInfo: ["msg":"需要\(Int(preSize))MB,可用\(Int(freeSize))MB"])
                 self.exportCompletion?(error as Error, nil)
                 return
             }

+ 1 - 1
BFRecordScreenKit/Classes/BFVoiceRecordManager.swift

@@ -17,7 +17,7 @@ class BFVoiceRecordManager: NSObject {
     //录音取消回调
     var cancelRecordHandle: ((PQVoiceModel?) -> Void)?
     //录音进度回调
-    var recorderProgrossHandle: ((Float64?) -> Void)?
+    var recorderProgrossHandle: ((Float64) -> Void)?
     //字幕的回调 参数1: 字幕数据 ,参数2 :对应的录音文件
     var subtitleRecordHandle: ((String?,String?) -> Void)?
     //开始录制时间

+ 9 - 4
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -414,7 +414,8 @@ public class BFRecordScreenController: BFBaseViewController {
         // 录音进度
         recorderManager?.recorderProgrossHandle = { [weak self] progress in
             BFLog(1, message: "curr:录音进度--\(progress) \(self?.recordStartTime ?? 0) \(self?.isRecording ?? false)")
-            self?.drawProgressIndication(progress: progress ?? 0)
+
+            self?.drawProgressIndication(progress: (progress.isNaN || progress.isInfinite) ? progress : 0)
         }
 
         // 录音字幕回调
@@ -1428,7 +1429,7 @@ public class BFRecordScreenController: BFBaseViewController {
                 itemModels.append(itemModel)
                 if index == 0 {
                     if asset.mediaType == .video {
-                        itemModel.fetchAVUrlAssetCallBack = { [weak self, weak itemModel] _ in
+                        itemModel.fetchAVUrlAssetCallBack = { [weak self, weak itemModel] in
                             //                            self?.export(avsss:uralss)
                             DispatchQueue.main.async { [weak self, weak itemModel] in
                                 self?.progressThumV.recordItem = itemModel
@@ -1610,7 +1611,7 @@ public class BFRecordScreenController: BFBaseViewController {
         // 注:在录制停止时,视频播放器进度依然在走,误差在80毫秒左右
         if isRecording {
             let ratioX = 0.08
-            indirectionView?.setProgress(start: recordStartTime, progress: progress - ratioX)
+            indirectionView?.setProgress(start: recordStartTime, progress: max(0, progress - ratioX))
         }
         if itemModels[currItemModelIndex].mediaType == .IMAGE {
             imageRecordProgress(isRecord: true, progress: progress)
@@ -1684,7 +1685,11 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
                 sself.progressThumV.isHidden = false
             }
         }
-        recordItem.fetchPlayItemCallBack = { [weak self] _ in
+        recordItem.fetchPlayItemCallBack = { [weak self, weak recordItem] item in
+            guard item != nil else {
+                cShowHUB(superView: nil, msg: "视频获取失败:\(recordItem?.index ?? 0)")
+                return
+            }
             guard let sself = self else {
                 return
             }