Преглед изворни кода

1.素材录制按钮状态

wenweiwei пре 3 година
родитељ
комит
2fa94c3ba6

+ 13 - 12
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -60,7 +60,8 @@ public class BFRecordScreenController: BFBaseViewController {
 
     var isEndPlay = false {
         didSet {
-            recordBtn.isHidden = isEndPlay
+            // 如果是图片的话在播放停止时不需要隐藏录制
+            recordBtn.isHidden = (itemModels[currItemModelIndex].mediaType == .IMAGE && isEndPlay) ? false : isEndPlay
         }
     }
 
@@ -68,7 +69,6 @@ public class BFRecordScreenController: BFBaseViewController {
         didSet {
             playBtn.isSelected = isNormalPlaying
             withDrawBtn.isHidden = isNormalPlaying
-
         }
     }
 
@@ -498,7 +498,7 @@ public class BFRecordScreenController: BFBaseViewController {
                         // 矫正进度
                         self?.resetCurrentProgress()
                         self?.deleteRecordBtn.isHidden = true
-                        self?.recordBtn.isHidden = self?.isEndPlay ?? false
+                        self?.recordBtn.isHidden = (self?.itemModels[self?.currItemModelIndex ?? 0].mediaType == .IMAGE && (self?.isEndPlay ?? false)) ? false : (self?.isEndPlay ?? false)
                     }
                     sself.currentPlayRecordIndex = -3 // 刚录音完,不需要播放录音
                     // 重置录制开始时间
@@ -869,11 +869,10 @@ public class BFRecordScreenController: BFBaseViewController {
         if isDragingProgressSlder {
             return
         }
+        isRecording = true
         progressThumV.progressView.isUserInteractionEnabled = false
         collectionView.isScrollEnabled = false
         pause()
-        isRecording = true
-
         if recorderManager == nil {
             BFLog(message: "录音机初始化错误!!!")
             return
@@ -909,9 +908,9 @@ public class BFRecordScreenController: BFBaseViewController {
     }
 
     @objc func endRecord() {
+        pause()
         // 存储录音
         isRecording = false
-        pause()
         progressThumV.progressView.isUserInteractionEnabled = true
         collectionView.isScrollEnabled = true
 
@@ -1302,7 +1301,7 @@ public class BFRecordScreenController: BFBaseViewController {
         subtitleBtn.isHidden = false
         soundSettingBtn.isHidden = false
         withDrawBtn.isHidden = false
-        recordBtn.isHidden = isEndPlay
+        recordBtn.isHidden = isRecording ? false : isEndPlay
         //        movie?.cancelProcessing()
         assetPlayer?.pause()
         recordPlayer?.pause()
@@ -1402,7 +1401,7 @@ public class BFRecordScreenController: BFBaseViewController {
 
             self?.isNormalPlaying = false
             self?.isEndPlay = true
-            
+
             if self?.isRecording ?? false {
                 self?.endRecord()
                 cShowHUB(superView: nil, msg: "此视频已录制到头了哦")
@@ -1594,13 +1593,13 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
     public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
         endScrollItem(scrollView)
     }
-    
+
     public func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
         if !decelerate {
             endScrollItem(scrollView)
         }
     }
-    
+
     func endScrollItem(_ scrollView: UIScrollView) {
 //    public func scrollViewDidScroll(_ scrollView: UIScrollView) {
         BFLog(1, message: "滚动结束")
@@ -1672,16 +1671,18 @@ public extension BFRecordScreenController {
             recordStartPlayTime = currentAssetProgress
             currenStartPlayTime = CMTime.zero
             playRecord(at: currentAssetProgress, periodicTimeObserver: { [weak self] currentT, currentItem in
-                BFLog(1, message: "播放第段进度:\(currentT),\(currentItem)")
+                BFLog(1, message: "播放图片素材进度:\(currentT),\(currentItem)")
                 self?.imageRecordProgress(progress: CMTimeGetSeconds(currentT))
             }, didPlayToEndTime: { [weak self] recordInfo, currentItem in
-                BFLog(message: "播放第段结束:\(String(describing: recordInfo?.1)),\(String(describing: currentItem))")
+                BFLog(message: "播放图片素材录音结束:\(String(describing: recordInfo?.1)),\(String(describing: currentItem))")
                 if (self?.itemModels[self?.currItemModelIndex ?? 0].voiceStickers.count ?? 0) <= ((recordInfo?.0 ?? 0) + 1) || (recordInfo?.1.endTime ?? 0) >= (self?.itemModels[self?.currItemModelIndex ?? 0].voiceStickers.last?.endTime ?? 0) {
                     self?.isEndPlay = true
                     self?.pause()
                     // 注:矫正进度--播放结束后当前指针应该到当前素材总时长
                     self?.currentAssetProgress = CMTime(seconds: self?.itemModels[self?.currItemModelIndex ?? 0].materialDuraion ?? 0, preferredTimescale: 1000)
                     self?.resetCurrentProgress()
+                    // 录制播放结束后显示录制按钮
+                    self?.recordBtn.isHidden = false
                     // 跳转下一段
 //                    if (self?.currItemModelIndex ?? 0) < ((self?.itemModels.count ?? 0) - 1) {
 //                        self?.collectionView.setContentOffset(CGPoint(x: CGFloat((self?.currItemModelIndex ?? 0) + 1) * (self?.collectionView.frame.width ?? 0), y: 0), animated: true)