Pārlūkot izejas kodu

音乐音量完成
todo合成导出

南鑫林 5 gadi atpakaļ
vecāks
revīzija
14a2cd7422

+ 123 - 148
RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishEditNew/View/PublishEditNew/PublishEditNewVideoView.swift

@@ -31,6 +31,14 @@ class PublishEditNewVideoView: UIView {
     var isPlaying : Bool = true
     /// 滤镜选中的selected
     var selectedIndex : Int = 0
+    /// 音乐的streamId存放
+    var streamId  : Int32? = -1
+    /// 原音音量
+    var originalSoundVolumn : Float = 50.0
+    /// 配乐音量
+    var soundtrackVolumn : Float = 50.0
+    /// 音选中的sIndex
+    var segmentIndex : Int = 0
     
     override init(frame: CGRect) {
         super.init(frame: frame)
@@ -77,6 +85,13 @@ class PublishEditNewVideoView: UIView {
     /// 设置数据
     func setupData() {
         publishEditNewVideoSetView.playProgressView.slider.maximumValue =  Float(player?.getDuration() ?? 0.0)
+        if PublishNewMusicView.publishNewMusicUseURL != nil {
+            let effectMusic = AliyunEffectMusic(file: PublishNewMusicView.publishNewMusicUseURL?.path)
+            editor?.apply(effectMusic)
+            setAudio(streamId:effectMusic?.effectVid())
+        }else {
+            setAudio(streamId:-1)
+        }
         // 播放器视频
         player?.play()
         // 返回
@@ -87,8 +102,10 @@ class PublishEditNewVideoView: UIView {
         // 音乐
         publishEditNewVideoSetView.musicButton.rx.tap.subscribe(onNext: {[weak self] (data) in
             guard let strongSelf = self else { return }
-            if strongSelf.player?.isPlaying() ?? true {
-                strongSelf.player?.pause()
+            if strongSelf.segmentIndex == 0 {
+                if strongSelf.player?.isPlaying() ?? true {
+                    strongSelf.player?.pause()
+                }
             }
             strongSelf.musicVolumeViewisHidden(isHidden: false)
         }).disposed(by: disposeBag)
@@ -169,21 +186,6 @@ class PublishEditNewVideoView: UIView {
                 
                 strongSelf.effectFilterViewisHidden(isHidden: true)
             }
-
-//            // 隐藏音乐
-//            if  strongSelf.musicView.alpha == 1 {
-//
-//                PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
-//                strongSelf.musicViewisHidden(isHidden: true)
-//                if strongSelf.isPlaying {
-//                    strongSelf.resumePlay()
-//                }
-//            }
-//
-//            // 隐藏音量
-//            if  strongSelf.volumeView.alpha == 1 {
-//                strongSelf.volumeViewisHidden(isHidden: true)
-//            }
             
         }
         
@@ -209,73 +211,105 @@ class PublishEditNewVideoView: UIView {
             self?.showFilterNameLabel(aliyunEffectFilter: aliyunEffectFilter)
         }
         
-//        // 关闭音乐按钮
-//        musicView.closeButton.rx.tap.subscribe(onNext: { [weak self] (data) in
-//            guard let strongSelf = self else { return }
-//            PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
-//            strongSelf.musicViewisHidden(isHidden: true)
-//            if strongSelf.isPlaying {
-//                strongSelf.resumePlay()
-//            }
-//        }).disposed(by: disposeBag)
+        // 关闭音乐按钮
+        musicVolumeView.publishEditNewMusicView.closeButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            guard let strongSelf = self else { return }
+            PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
+            strongSelf.musicVolumeViewisHidden(isHidden: true)
+            if strongSelf.isPlaying {
+                strongSelf.resumePlay()
+            }
+        }).disposed(by: disposeBag)
         
-//        // 不使用音乐按钮
-//        musicView.noUseMusicButton.rx.tap.subscribe(onNext: { [weak self] (data) in
-//             guard let strongSelf = self else { return }
-//            PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
-//            PublishNewMusicView.publishNewMusicUseIndexPath = nil
-//            strongSelf.editor?.removeMusics()
-//            strongSelf.musicViewisHidden(isHidden: true)
-//            if strongSelf.isPlaying {
-//                strongSelf.resumePlay()
-//            }
-//        }).disposed(by: disposeBag)
+        // 不使用音乐按钮
+        musicVolumeView.publishEditNewMusicView.noUseMusicButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+             guard let strongSelf = self else { return }
+            PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
+            PublishNewMusicView.publishNewMusicUseIndexPath = nil
+            strongSelf.editor?.removeMusics()
+            strongSelf.musicVolumeViewisHidden(isHidden: true)
+            if strongSelf.isPlaying {
+                strongSelf.resumePlay()
+            }
+        }).disposed(by: disposeBag)
         
-//        // 使用音乐
-//        musicView.userMusicClosure = {
-//            [weak self] in
-//            guard let strongSelf = self else { return }
-//            if PublishNewMusicView.publishNewMusicUseURL?.path == nil {
-//                PublishNewMusicView.publishNewMusicUseIndexPath = nil
-//                strongSelf.musicViewisHidden(isHidden: true)
-//                SwiftProgressHUD.shared().showText("使用音乐错误,请您重新选择!!!")
-//            }else {
-//                strongSelf.editor?.removeMusics()
-//                PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
-//                strongSelf.editor?.apply(AliyunEffectMusic(file: PublishNewMusicView.publishNewMusicUseURL?.path))
-//                strongSelf.musicViewisHidden(isHidden: true)
-//                strongSelf.player?.replay()
-//            }
-//
-//        }
+        // 使用音乐
+        musicVolumeView.publishEditNewMusicView.userMusicClosure = {
+            [weak self] in
+            guard let strongSelf = self else { return }
+            if PublishNewMusicView.publishNewMusicUseURL?.path == nil {
+                PublishNewMusicView.publishNewMusicUseIndexPath = nil
+                strongSelf.musicVolumeViewisHidden(isHidden: true)
+                SwiftProgressHUD.shared().showText("使用音乐错误,请您重新选择!!!")
+            }else {
+                strongSelf.editor?.removeMusics()
+                PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
+                let effectMusic = AliyunEffectMusic(file: PublishNewMusicView.publishNewMusicUseURL?.path)
+                strongSelf.editor?.apply(effectMusic)
+                strongSelf.streamId = effectMusic?.effectVid()
+                strongSelf.musicVolumeViewisHidden(isHidden: true)
+                strongSelf.player?.replay()
+            }
+        }
         
-//        // 选中音量
-//        musicView.publishEditNewMusicSegmentView.didSelectedItemClosure = {
-//            [weak self] in
-//            guard let strongSelf = self else { return }
-//            PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
-//            if strongSelf.volumeView.alpha == 1.0 {
-//                strongSelf.volumeViewisHidden(isHidden: false)
-//            }
-//            strongSelf.musicViewisHidden(isHidden: true)
-//            if strongSelf.isPlaying {
-//                strongSelf.resumePlay()
-//            }
-//
-//        }
+        // 选中音乐/音量
+        musicVolumeView.didSelectedItem = {
+            [weak self] index in
+            guard let strongSelf = self else { return }
+            AliPlayerManager.shared.audioPlayer?.stop()
+            strongSelf.segmentIndex = index
+            //音乐
+            if index == 0 {
+                // 暂停播放
+                strongSelf.player?.pause()
+            }
+            //音量
+            if index == 1 {
+                PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
+                strongSelf.musicVolumeView.publishEditNewMusicView.listContainerView.reloadData()
+                if strongSelf.isPlaying {
+                    // 继续播放
+                    strongSelf.resumePlay()
+                }
+            }
+        }
         
-//        // 选中音乐
-//        volumeView.publishEditNewVolumeSegmentView.didSelectedItemClosure = {
-//            [weak self] in
-//            guard let strongSelf = self else { return }
-////            if strongSelf.musicView.alpha == 1 {
-////                strongSelf.musicViewisHidden(isHidden: false)
-////            }
-//            strongSelf.volumeViewisHidden(isHidden: true)
-//            if strongSelf.player?.isPlaying() ?? true {
-//                strongSelf.player?.pause()
-//            }
-//        }
+        // 音量点击空白处隐藏
+        musicVolumeView.tapClosure = {
+            [weak self] in
+            guard let strongSelf = self else { return }
+            PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
+            strongSelf.musicVolumeViewisHidden(isHidden: true)
+            if strongSelf.isPlaying {
+                strongSelf.resumePlay()
+            }
+        }
+        
+         // 原音音量
+        musicVolumeView.publishEditNewVolumeView.originalSoundClosure = {
+            [weak self] originalSoundVolumn in
+             guard let strongSelf = self else { return }
+            strongSelf.originalSoundVolumn = originalSoundVolumn
+            strongSelf.setAudio(streamId: self?.streamId)
+            
+        }
+        // 配乐音量
+        musicVolumeView.publishEditNewVolumeView.soundtrackSoundClosure = {
+            [weak self] soundtrackVolumn in
+             guard let strongSelf = self else { return }
+            strongSelf.soundtrackVolumn = soundtrackVolumn
+            strongSelf.setAudio(streamId: self?.streamId)
+            
+        }
+        // 应用音量
+        musicVolumeView.publishEditNewVolumeView.sureButton.rx.tap.subscribe(onNext: { [weak self] (_) in
+            guard let strongSelf = self else { return }
+            PublishNewMusicView.publishNewMusicSelectedIndexPath = nil
+            strongSelf.musicVolumeViewisHidden(isHidden: true)
+            if strongSelf.isPlaying {
+                strongSelf.resumePlay()
+            }
+        }).disposed(by: disposeBag)
 
     }
     
@@ -284,9 +318,6 @@ class PublishEditNewVideoView: UIView {
         let editor = AliyunEditor(path: taskPath, preview: editorPreview)
         editor?.delegate = self
         editor?.startEdit()
-        if PublishNewMusicView.publishNewMusicUseURL != nil {
-            editor?.apply(AliyunEffectMusic(file: PublishNewMusicView.publishNewMusicUseURL?.path))
-        }
         return editor
     }()
     
@@ -323,6 +354,8 @@ class PublishEditNewVideoView: UIView {
     /// 音乐/音量
     lazy var musicVolumeView : PublishEditNewMusicVolumeView = {
         let musicVolumeView = PublishEditNewMusicVolumeView(frame: CGRect(x: 0, y: kScreenHeight, width: kScreenWidth, height: kScreenHeight - kSafeStatusBarHeight))
+        musicVolumeView.publishEditNewVolumeView.originSlider.value = 0.5
+        musicVolumeView.publishEditNewVolumeView.soundtrackSlider.value = 0.5
         return musicVolumeView
     }()
     
@@ -405,13 +438,9 @@ extension PublishEditNewVideoView {
         var offsetY : CGFloat = kScreenHeight
         if isHidden {
             offsetY = kScreenHeight
-            // 移除点击手势
-            editorPreview.removetap()
-//            musicView.listContainerView.reloadData()
+            musicVolumeView.publishEditNewMusicView.listContainerView.reloadData()
         }else {
             offsetY = kSafeStatusBarHeight
-            // 添加点击手势
-            editorPreview.addTap()
         }
         UIView.animate(withDuration: 0.5, animations: {
             [weak self] in
@@ -427,66 +456,12 @@ extension PublishEditNewVideoView {
         })
     }
     
-//    /// 音乐是否显示
-//    ///
-//    /// - Parameter isHidden: 是否隐藏
-//    func musicViewisHidden(isHidden:Bool) {
-//        AliPlayerManager.shared.audioPlayer?.stop()
-//        var offsetY : CGFloat = kScreenHeight
-//        if isHidden {
-//            offsetY = kScreenHeight
-//            // 移除点击手势
-//            editorPreview.removetap()
-//            musicView.listContainerView.reloadData()
-//        }else {
-//            offsetY = kSafeStatusBarHeight
-//            // 添加点击手势
-//            editorPreview.addTap()
-//            musicView.publishEditNewMusicSegmentView.segmentedView.selectItemAt(index: 0)
-//            musicView.publishEditNewMusicSegmentView.segmentedView.reloadData()
-//        }
-//        UIView.animate(withDuration: 0.5, animations: {
-//            [weak self] in
-//            self?.musicView.frame = CGRect(x: 0, y: offsetY, width: kScreenWidth, height: kScreenHeight -
-//               kSafeStatusBarHeight)
-//            if isHidden {
-//               self?.musicView.alpha = 0
-//               self?.publishEditNewVideoSetView.alpha = 1
-//            }else {
-//               self?.musicView.alpha = 1
-//               self?.publishEditNewVideoSetView.alpha = 0
-//            }
-//        })
-//    }
-    
-//    /// 音量是否显示
-//    ///
-//    /// - Parameter isHidden: 是否隐藏
-//    func volumeViewisHidden(isHidden:Bool) {
-//        var offsetY : CGFloat = kScreenHeight
-//        if isHidden {
-//            offsetY = kScreenHeight
-//            // 移除点击手势
-//            editorPreview.removetap()
-//        }else {
-//            offsetY = kScreenHeight - kSafeTabBarHeight - 129 - 48
-//            // 添加点击手势
-//            editorPreview.addTap()
-//            volumeView.publishEditNewVolumeSegmentView.segmentedView.selectItemAt(index: 1)
-//            volumeView.publishEditNewVolumeSegmentView.segmentedView.reloadData()
-//        }
-//        UIView.animate(withDuration: 0.5, animations: {
-//            [weak self] in
-//            self?.volumeView.frame = CGRect(x: 0, y: offsetY, width: kScreenWidth, height: kSafeTabBarHeight + 129 + 48)
-//            if isHidden {
-//               self?.volumeView.alpha = 0
-//               self?.publishEditNewVideoSetView.alpha = 1
-//            }else {
-//               self?.volumeView.alpha = 1
-//               self?.publishEditNewVideoSetView.alpha = 0
-//            }
-//        })
-//    }
+    /// 设置音效
+    func setAudio(streamId:Int32?) {
+        self.streamId = streamId
+        editor?.setAudioWeight(Int32(soundtrackVolumn), streamId: streamId ?? -1)
+        editor?.setMainStreamsAudioWeight(Int32(originalSoundVolumn))
+    }
     
     /// 滑块需要显示的时间
     /// - Parameter playSec: 时间

+ 2 - 5
RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishEditNew/View/PublishEditNewMusicVolumeView/PublishEditNewMusicView.swift

@@ -42,9 +42,7 @@ class PublishEditNewMusicView: BaseView {
     override func setupLayouts() {
 
         vibrancyView.snp.makeConstraints { (make) in
-            make.bottom.equalTo(kSafeTabBarHeight+48)
-            make.left.right.equalToSuperview()
-            make.height.equalTo(kScreenHeight - kSafeStatusBarHeight)
+            make.edges.equalToSuperview()
         }
         
         closeButton.snp.makeConstraints { (make) in
@@ -203,10 +201,9 @@ class PublishEditNewMusicView: BaseView {
                 make.bottom.equalTo(strongSelf.recommendMusicLabel.snp.top).offset(-20)
             }
             
-            
-
         }
     }
+    
 
 }
 

+ 65 - 17
RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishEditNew/View/PublishEditNewMusicVolumeView/PublishEditNewMusicVolumeView.swift

@@ -14,23 +14,23 @@ class PublishEditNewMusicVolumeView: BaseView {
     var index : Int = 0
     
     override func setupViews() {
-        addSubview(segmentedView)
         addSubview(scrollView)
         scrollView.addSubview(publishEditNewMusicView)
-        scrollView.addSubview(publishEditNewVolumeBgView)
+        scrollView.addSubview(publishEditNewVolumeTopView)
+        scrollView.addSubview(publishEditNewVolumeView)
+        addSubview(segmentedView)
     }
     
     override func setupLayouts() {
+        scrollView.snp.makeConstraints { (make) in
+           make.left.bottom.right.equalToSuperview()
+           make.height.equalTo(kScreenHeight - kSafeStatusBarHeight)
+        }
         segmentedView.snp.makeConstraints { (make) in
             make.bottom.equalTo(-kSafeTabBarHeight)
             make.left.right.bottom.equalToSuperview()
             make.height.equalTo(48)
         }
-        scrollView.snp.makeConstraints { (make) in
-           make.bottom.equalTo(segmentedView.snp.top)
-           make.left.right.equalToSuperview()
-           make.height.equalTo(kScreenHeight - kSafeStatusBarHeight - 48 - kSafeTabBarHeight)
-        }
     }
     
     override func setupData() {
@@ -79,7 +79,7 @@ class PublishEditNewMusicVolumeView: BaseView {
     //滚动的View
     private lazy var scrollView: UIScrollView = {
         let scrollView = UIScrollView()
-        scrollView.contentSize = CGSize(width: kScreenWidth * 2, height: kScreenHeight)
+        scrollView.contentSize = CGSize(width: kScreenWidth * 2, height: kScreenHeight - kSafeStatusBarHeight)
         scrollView.isPagingEnabled = true
         scrollView.showsHorizontalScrollIndicator = false
         scrollView.showsVerticalScrollIndicator = false
@@ -95,18 +95,38 @@ class PublishEditNewMusicVolumeView: BaseView {
         return publishEditNewMusicView
     }()
     
-    // 音量背景view
-    lazy var publishEditNewVolumeBgView : UIView = {
-        let publishEditNewVolumeBgView = UIView(frame: CGRect(x: kScreenWidth, y: 0, width: kScreenWidth, height: kScreenHeight - kSafeStatusBarHeight))
-        publishEditNewVolumeBgView.backgroundColor = UIColor.clear
-        publishEditNewVolumeBgView.addSubview(publishEditNewVolumeView)
-        return publishEditNewVolumeBgView
+    // 音量顶部View
+    lazy var publishEditNewVolumeTopView : UIView = {
+        let publishEditNewVolumeTopView = UIView(frame: CGRect(x: kScreenWidth, y: 0, width: kScreenWidth, height: kScreenHeight-kSafeStatusBarHeight-kSafeTabBarHeight - 48 - 129))
+        publishEditNewVolumeTopView.backgroundColor = UIColor.clear
+        publishEditNewVolumeTopView.addGestureRecognizer(tap)
+        return publishEditNewVolumeTopView
     }()
     // 音量
     lazy var publishEditNewVolumeView : PublishEditNewVolumeView = {
-        let publishEditNewVolumeView = PublishEditNewVolumeView(frame: CGRect(x: 0, y: kScreenHeight-kSafeStatusBarHeight-kSafeTabBarHeight - 48 - 129, width: kScreenWidth, height: kSafeTabBarHeight + 48 + 129))
+        let publishEditNewVolumeView = PublishEditNewVolumeView(frame: CGRect(x: kScreenWidth, y: kScreenHeight-kSafeStatusBarHeight-kSafeTabBarHeight - 48 - 129, width: kScreenWidth, height: kSafeTabBarHeight + 48 + 129))
         return publishEditNewVolumeView
     }()
+    
+    lazy var tap: UITapGestureRecognizer = {
+        let tap = UITapGestureRecognizer(target: self, action: #selector(tapAction))
+        tap.numberOfTapsRequired = 1
+        tap.numberOfTouchesRequired = 1
+        return tap
+    }()
+    
+    /// 点击手势
+    typealias TapClosure = () -> Void
+    var tapClosure : TapClosure?
+    @objc func tapAction() {
+        if let tapClosure = tapClosure {
+            tapClosure()
+        }
+    }
+    
+    // 选中的segment
+    typealias DidSelectedItem = (Int) -> Void
+    var didSelectedItem : DidSelectedItem?
 
 }
 
@@ -116,14 +136,42 @@ extension PublishEditNewMusicVolumeView : JXSegmentedViewDelegate {
     func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
         switch index {
         case 0:
-            scrollView.setContentOffset(CGPoint(x: 0, y:0), animated: false)
+            UIView.animate(withDuration: 0.5, animations: {
+                [weak self] in
+                guard let strongSelf = self else { return }
+                strongSelf.frame = CGRect(x: 0, y: kScreenHeight, width: kScreenWidth, height: kScreenHeight - kSafeStatusBarHeight)
+            }) { [weak self] (finish) in
+                guard let strongSelf = self else { return }
+                strongSelf.scrollView.setContentOffset(CGPoint(x: 0, y:0), animated: false)
+                UIView.animate(withDuration: 0.5) {
+                    [weak self] in
+                    guard let strongSelf = self else { return }
+                    strongSelf.frame = CGRect(x: 0, y: kSafeStatusBarHeight, width: kScreenWidth, height: kScreenHeight - kSafeStatusBarHeight)
+                }
+            }
             break
         case 1:
-            scrollView.setContentOffset(CGPoint(x: kScreenWidth, y:0), animated: false)
+            UIView.animate(withDuration: 0.5, animations: {
+                [weak self] in
+                guard let strongSelf = self else { return }
+                strongSelf.frame = CGRect(x: 0, y: kScreenHeight, width: kScreenWidth, height: kScreenHeight - kSafeStatusBarHeight)
+            }) { [weak self] (finish) in
+                guard let strongSelf = self else { return }
+                strongSelf.scrollView.setContentOffset(CGPoint(x: kScreenWidth, y:0), animated: false)
+                UIView.animate(withDuration: 0.5) {
+                    [weak self] in
+                    guard let strongSelf = self else { return }
+                    strongSelf.frame = CGRect(x: 0, y: kSafeStatusBarHeight, width: kScreenWidth, height: kScreenHeight - kSafeStatusBarHeight)
+                }
+            }
             break
         default:
             break
         }
+        
+        if let didSelectedItem = didSelectedItem {
+            didSelectedItem(index)
+        }
     }
     
     // 点击选中的情况才会调用该方法

+ 46 - 48
RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishEditNew/View/PublishEditNewMusicVolumeView/PublishEditNewVolumeView.swift

@@ -16,17 +16,15 @@ class PublishEditNewVolumeView: BaseView {
         addSubview(vibrancyView)
         addSubview(sureButton)
         addSubview(originLabel)
-        addSubview(backLabel)
+        addSubview(soundtrackLabel)
         addSubview(originSlider)
-        addSubview(backSlider)
+        addSubview(soundtrackSlider)
     }
     
     override func setupLayouts() {
 
         vibrancyView.snp.makeConstraints { (make) in
-            make.bottom.equalTo(kSafeTabBarHeight+48)
-            make.left.right.equalToSuperview()
-            make.height.equalTo(129+48+kSafeTabBarHeight)
+            make.edges.equalToSuperview()
         }
         
         sureButton.snp.makeConstraints { (make) in
@@ -41,7 +39,7 @@ class PublishEditNewVolumeView: BaseView {
             make.width.equalTo(30)
             make.height.equalTo(21)
         }
-        backLabel.snp.makeConstraints { (make) in
+        soundtrackLabel.snp.makeConstraints { (make) in
             make.top.equalTo(78)
             make.left.equalTo(kScreenWidth/2 + 13)
             make.width.equalTo(30)
@@ -49,15 +47,15 @@ class PublishEditNewVolumeView: BaseView {
         }
         originSlider.snp.makeConstraints { (make) in
             make.left.equalTo(originLabel.snp.right).offset(6)
-            make.right.equalTo(backLabel.snp.left).offset(-20)
+            make.right.equalTo(soundtrackLabel.snp.left).offset(-20)
             make.height.equalTo(10)
             make.centerY.equalTo(originLabel.snp.centerY)
         }
-        backSlider.snp.makeConstraints { (make) in
-            make.left.equalTo(backLabel.snp.right).offset(6)
+        soundtrackSlider.snp.makeConstraints { (make) in
+            make.left.equalTo(soundtrackLabel.snp.right).offset(6)
             make.right.equalTo(-14)
             make.height.equalTo(10)
-            make.centerY.equalTo(backLabel.snp.centerY)
+            make.centerY.equalTo(soundtrackLabel.snp.centerY)
         }
         
     }
@@ -102,59 +100,59 @@ class PublishEditNewVolumeView: BaseView {
         originSlider.setThumbImage(kImage(name: "music_btn_dot"), for: .normal)
         originSlider.setThumbImage(kImage(name: "music_btn_dot"), for: .highlighted)
         //滑块滑动停止后才触发ValueChanged事件
-        originSlider.isContinuous = false
-        originSlider.addTarget(self,action:#selector(originValueChanged(_:)), for:.valueChanged)
+//        originSlider.isContinuous = false
+        originSlider.addTarget(self,action:#selector(originalSoundValueChanged), for:.valueChanged)
 
         return originSlider
     }()
     
     /// 配乐
-    lazy var backLabel: UILabel = {
-        let backLabel = UILabel()
-        backLabel.text = "配乐"
-        backLabel.textColor = kffffffColor
-        backLabel.font = kRegularFont15
-        return backLabel
+    lazy var soundtrackLabel: UILabel = {
+        let soundtrackLabel = UILabel()
+        soundtrackLabel.text = "配乐"
+        soundtrackLabel.textColor = kffffffColor
+        soundtrackLabel.font = kRegularFont15
+        return soundtrackLabel
     }()
     
     /// 配乐Slider
-    lazy var backSlider: CustomSlider = {
-        let backSlider = CustomSlider()
-        backSlider.thumbTintColor = kffffffColor
+    lazy var soundtrackSlider: CustomSlider = {
+        let soundtrackSlider = CustomSlider()
+        soundtrackSlider.thumbTintColor = kffffffColor
         // 区域颜色
-        backSlider.minimumTrackTintColor = kffffffColor
-        backSlider.maximumTrackTintColor = UIColor(hexString: "000000", alpha: 0.3)
+        soundtrackSlider.minimumTrackTintColor = kffffffColor
+        soundtrackSlider.maximumTrackTintColor = UIColor(hexString: "000000", alpha: 0.3)
         //
-        backSlider.setThumbImage(kImage(name: "music_btn_dot"), for: .normal)
-        backSlider.setThumbImage(kImage(name: "music_btn_dot"), for: .highlighted)
+        soundtrackSlider.setThumbImage(kImage(name: "music_btn_dot"), for: .normal)
+        soundtrackSlider.setThumbImage(kImage(name: "music_btn_dot"), for: .highlighted)
         //滑块滑动停止后才触发ValueChanged事件
-        backSlider.isContinuous = false
-        backSlider.addTarget(self,action:#selector(backValueChanged(_:)), for:.valueChanged)
-        return backSlider
+//        soundtrackSlider.isContinuous = false
+        soundtrackSlider.addTarget(self,action:#selector(soundtrackValueChanged), for:.valueChanged)
+        return soundtrackSlider
     }()
     
-    @objc func originValueChanged(_ sender: Any?) {
-//        let slider = sender as? UISlider
-//
-//        let sliderRate = (slider?.value ?? 0.0) / (slider?.maximumValue ?? 0.0)
-//        self.originVolumn = CGFloat(sliderRate)*CGFloat(100)
-//
-//        var paraDic = Dictionary<String, Any>()
-//        paraDic.updateValue(originVolumn!, forKey: "origin")
-//        paraDic.updateValue(backVolumn!, forKey: "back")
-//        NotificationCenter.default.post(name: NSNotification.Name(rawValue: "ChangeAudioVolumnNoti"), object: paraDic)
+    // 原音
+    typealias OriginalSoundClosure = (_ value:Float) -> Void
+    var originalSoundClosure : OriginalSoundClosure?
+    @objc func originalSoundValueChanged() {
+        
+        let sliderRate = originSlider.value / originSlider.maximumValue
+        let originVolumn = Float(sliderRate)*Float(100)
+        if let originalSoundClosure = originalSoundClosure {
+            originalSoundClosure(originVolumn)
+        }
     }
     
-    @objc func backValueChanged(_ sender: Any?) {
-//        let slider = sender as? UISlider
-//
-//        let sliderRate = (slider?.value ?? 0.0) / (slider?.maximumValue ?? 0.0)
-//        self.backVolumn = CGFloat(sliderRate)*CGFloat(100)
-//
-//        var paraDic = Dictionary<String, Any>()
-//        paraDic.updateValue(originVolumn!, forKey: "origin")
-//        paraDic.updateValue(backVolumn!, forKey: "back")
-//        NotificationCenter.default.post(name: NSNotification.Name(rawValue: "ChangeAudioVolumnNoti"), object: paraDic)
+    // 配乐
+    typealias SoundtrackSoundClosure = (_ value:Float) -> Void
+    var soundtrackSoundClosure : SoundtrackSoundClosure?
+    @objc func soundtrackValueChanged() {
+
+        let sliderRate = soundtrackSlider.value / soundtrackSlider.maximumValue
+        let soundtrackVolumn = Float(sliderRate)*Float(100)
+        if let soundtrackSoundClosure = soundtrackSoundClosure {
+            soundtrackSoundClosure(soundtrackVolumn)
+        }
     }
 
 }

+ 5 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishEditNew/View/PublishEditNewPlayProgressView/PublishNewUISlider.swift

@@ -18,5 +18,10 @@ class PublishNewUISlider: UISlider {
         self.cornerRadius = 2.5
         return boundsNew
     }
+    
+    // 改变滑块的触摸范围
+     override func thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect {
+         return super.thumbRect(forBounds: bounds, trackRect: rect, value: value)
+     }
 
 }