Selaa lähdekoodia

修改接口参数;
搜索页面增加音量控制

harry 3 vuotta sitten
vanhempi
commit
db62ac3ce1

+ 60 - 2
BFRecordScreenKit/Classes/RecordScreen/Controller/BFMusicSearchController.swift

@@ -29,6 +29,12 @@ class BFMusicSearchController: BFBaseViewController {
     
     var currPage = 1
     
+    var musicVolume = 0.0 {
+        didSet{
+            slidV.value = Float(musicVolume)
+            uiForChangeVolume()
+        }
+    }
     var keywork : String?
 
     // 试听音乐
@@ -62,6 +68,21 @@ class BFMusicSearchController: BFBaseViewController {
         return searchTF
     }()
     
+    lazy var progressL : UILabel = {
+        let l = UILabel()
+        l.textColor = UIColor.hexColor(hexadecimal: "#9d9d9d")
+        l.font = UIFont.systemFont(ofSize: 13, weight: .regular)
+        l.textAlignment = .center
+        l.text = "0%"
+        return l
+    }()
+    
+    lazy var slidV : UISlider = {
+        let v = UISlider()
+        v.addTarget(self, action: #selector(valuChange(slid:)), for: .valueChanged)
+        return v
+    }()
+    
     lazy var musicTb : UITableView = {
         let tb = UITableView(frame: .zero)
         tb.delegate = self
@@ -99,10 +120,28 @@ class BFMusicSearchController: BFBaseViewController {
 
         view.addSubview(musicTb)
         musicTb.snp.makeConstraints { make in
-            make.left.right.bottom.equalToSuperview()
+            make.left.right.equalToSuperview()
             make.top.equalTo(searchTF.snp.bottom).offset(4)
+            make.bottom.equalTo(-100)
+        }
+        
+        let soundIV = UIImageView(image: imageInRecordScreenKit(by: "soundBtn"))
+        soundIV.contentMode = .scaleAspectFit
+        view.addSubview(soundIV)
+        soundIV.snp.makeConstraints { make in
+            make.left.equalTo(18)
+            make.top.equalTo(musicTb.snp.bottom).offset(36)
+            make.width.height.equalTo(28)
         }
         
+        view.addSubview(slidV)
+        slidV.frame = CGRect(x: 56, y: cScreenHeigth - 59, width: cScreenWidth - 56 - 18, height: 18)
+
+        progressL.frame = CGRect(x: slidV.x - 7, y: slidV.y - 24, width: 36, height: 16)
+        view.addSubview(progressL)
+        
+        musicVolume = 0.2
+        
         loadedTimeRangesObserver = player.observe(\AVPlayer.currentItem?.loadedTimeRanges, options: [.new, .initial]) { [weak self] (player, change) in
             
             DispatchQueue.main.async {[weak self] in
@@ -133,6 +172,23 @@ class BFMusicSearchController: BFBaseViewController {
     @objc func closeAction(){
         self.dismiss(animated: true, completion: nil)
     }
+    
+    @objc func valuChange(slid:UISlider) {
+        musicVolume = Double(slid.value)
+    }
+    
+    func uiForChangeVolume() {
+        let num = (Int)(musicVolume * 100)
+
+        progressL.text = String(format: "%d%%", num)
+        
+        var frame = progressL.frame
+        frame.origin.x = slidV.x - 7 + ((slidV.width - 28) / 100.0) * CGFloat(num)
+        progressL.frame = frame
+        
+        player.volume = Float(musicVolume)
+
+    }
 }
 
 extension BFMusicSearchController : UITableViewDelegate, UITableViewDataSource {
@@ -150,6 +206,7 @@ extension BFMusicSearchController : UITableViewDelegate, UITableViewDataSource {
                 guard let wself = self else { return }
                 wself.player.pause()
                 cell?.status = .pause
+                cell?.data?.volume = (Int)(wself.slidV.value * 100.0)
                 wself.choseAction?(cell?.data)
                 wself.dismiss(animated: true, completion: nil)
             }
@@ -157,7 +214,8 @@ extension BFMusicSearchController : UITableViewDelegate, UITableViewDataSource {
                 guard let wself = self else { return }
                 wself.player.pause()
                 cell?.status = .pause
-                
+                cell?.data?.volume = (Int)(wself.slidV.value * 100.0)
+
                 if let data = cell?.data {
                     wself.dismiss(animated: true) {[weak self] in
                         guard let wself = self else { return }

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

@@ -558,6 +558,7 @@ public class BFRecordScreenController: BFBaseViewController {
                     if isFinished {
                         let vc = BFMusicSearchController()
                         vc.modalPresentationStyle = .fullScreen
+                        vc.musicVolume = vv?.musicVolume
                         vc.choseAction = {[weak self] voiceModel in
                             guard let wself = self else { return }
                             wself.hadChoosed(music: voiceModel)

+ 3 - 3
BFRecordScreenKit/Classes/RecordScreen/View/BFChooseMusicView.swift

@@ -250,7 +250,7 @@ class BFChooseMusicView: UIView {
             }
         }
         
-        prepareData()
+        prepareCatoryList()
         
     }
     
@@ -259,10 +259,10 @@ class BFChooseMusicView: UIView {
     }
 
     //MARK: - 请求数据
-    func prepareData() {
+    func prepareCatoryList() {
         let categoryListUrl = "produce-center/bgm/app/getAllBgmCates"
         
-        BFNetRequestAdaptor.postRequestData(url: onlinePQTvApi + categoryListUrl, parames: [:], commonParams: ["baseInfo":commonParams()], encoding: JSONEncoding.default, isJsonEncodingNormal: false, timeoutInterval: 15) {[weak self] response, _, error, _ in
+        BFNetRequestAdaptor.postRequestData(url: onlinePQTvApi + categoryListUrl, parames: [:], commonParams: commonParams(), encoding: JSONEncoding.default, isJsonEncodingNormal: false, timeoutInterval: 15) {[weak self] response, _, error, _ in
             guard let wself = self else { return }
             
             var tagsList = [MusicCategoryModel]()