Browse Source

换歌后剪切的进度reset

harry 3 years ago
parent
commit
d00fdaaad8

+ 10 - 2
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -425,11 +425,16 @@ public class BFRecordScreenController: BFBaseViewController {
     lazy var musicCutView: BFMusicCutView = {
         let musicCutView = BFMusicCutView(frame: CGRect(x: 0, y: 0, width: cScreenWidth, height: cScreenHeigth))
         musicCutView.isHidden = true
-        musicCutView.cutTimeHandle = {[weak self] iscancel  ,endTime ,musicInfo in
+        musicCutView.cutTimeHandle = {[weak self] iscancel, endTime, musicInfo in
             guard let wself = self else { return }
             
             if(!iscancel){
                 wself.hadChoosed(music:musicInfo)
+            }else{
+                musicInfo?.isSelected = false
+                let btn = UIButton()
+                btn.tag = 1001
+                wself.choseMusicPanel.btnAction(btn: btn)
             }
         
             //add by ak
@@ -1477,8 +1482,11 @@ public class BFRecordScreenController: BFBaseViewController {
 
         DispatchQueue.main.async { [weak self] in
             guard let wself = self else { return }
-            wself.musicCutView.isHidden = false
             wself.musicCutView.bgmData = model
+            wself.musicCutView.currentProgressLab.text = model.startCMTime.seconds.formatDurationToHMS()
+            wself.musicCutView.resetWave()
+            wself.musicCutView.show()
+            
             wself.musicCutView.frame = CGRect(x: 0, y: cScreenHeigth + 220, width: cScreenWidth, height: cScreenHeigth)
             UIView.animate(withDuration: 0.1) {
                 // 显示裁剪视图

+ 6 - 1
BFRecordScreenKit/Classes/RecordScreen/View/BFChooseMusicView.swift

@@ -373,6 +373,8 @@ class BFChooseMusicView: UIView {
         switch btn.tag{
         case 1001:
             clickBtnAction?(.cancle)
+            chosedMusic?.isSelected = false
+            chosedMusic = nil
             choseCell()?.status = .normal
             chosedIndexPath = nil
             chosedCellStatu = .normal
@@ -399,6 +401,7 @@ class BFChooseMusicView: UIView {
     
     
     func refreshCurrSelectModel(mod:PQVoiceModel?) {
+        chosedMusic = mod
         if let mod = mod {
             mod.isSelected = true
         }
@@ -423,8 +426,10 @@ extension BFChooseMusicView:UITableViewDelegate, UITableViewDataSource {
             if cell.data?.isSelected ?? false {
                 chosedIndexPath = indexPath
                 chosedMusic = cell.data
-                cell.status = chosedCellStatu
+//                cell.status = chosedCellStatu
                 tableView.selectRow(at: indexPath, animated: false, scrollPosition: UITableView.ScrollPosition.none)
+                cell.status = .pause
+                playManager.replaceCurrentItem(musicPath: chosedMusic?.musicPath)
             }else{
                 cell.status = .normal
             }

+ 7 - 1
BFRecordScreenKit/Classes/RecordScreen/View/BFMusicCutView.swift

@@ -25,7 +25,7 @@ class BFMusicCutView: UIView, UIGestureRecognizerDelegate {
     let normalMargin: CGFloat = cDefaultMargin * 2
 
     // 记录设置的起点, 在点击确认后会设置 bgmdata 的 开始时间为本值。
-    var startCMTime: CMTime = .zero // 开始时间
+    var startCMTime: Float64 = 0.0 // 开始时间
 
     // 播放音乐
     lazy var avPlayer: AVPlayer = {
@@ -262,6 +262,10 @@ class BFMusicCutView: UIView, UIGestureRecognizerDelegate {
             progressImage.layer.addSublayer(lineLayer)
         }
     }
+    
+    func setProgress() {
+        
+    }
 
     @objc func panClick(ges: UIPanGestureRecognizer) {
         if ges.state == .changed {
@@ -344,6 +348,7 @@ class BFMusicCutView: UIView, UIGestureRecognizerDelegate {
 
     func show() {
         isHidden = false
+        startCMTime = bgmData?.currentTime ?? 0.0
     }
 
     @objc func hidden() {
@@ -353,6 +358,7 @@ class BFMusicCutView: UIView, UIGestureRecognizerDelegate {
 
     @objc func cancelAction() {
         hidden()
+        bgmData?.currentTime = startCMTime
         if cutTimeHandle != nil, bgmData != nil {
             cutTimeHandle!(true, 0, bgmData)
         }