杨锴
2024-11-09 5415b6659e542b21058428bbc0d38e7f5783815b
XQMuse/Root/Home/VC/HomeItemDetailVC.swift
@@ -8,6 +8,8 @@
import UIKit
import JQTools
let CleanDetailTime_Noti = Notification.Name.init("CleanDetailTime_Noti") //2边都在记录,一方记录清除另一方
class HomeItemDetailVC: BaseVC,PayMusicDelegate{
            @IBOutlet weak var slider_voice: UISlider!
@@ -35,21 +37,17 @@
    private var currentInterval:TimeInterval = 0
    private var totalInterval:TimeInterval = 0
            private var model:MeditationModel?
            private var model:MeditationModel?{
                        didSet{
                                    if let m = model{
                                                label_title.text = m.meditationTitle
                                                label_subtitle.text = m.detailDescription
                                                label_commentNum.text = "\(m.questionCount)"
                                    }
                        }
            }
//            init(id:Int) {
//                        super.init(nibName: nil, bundle: nil)
//                        self.id = id
//            }
            init(id:Int) {
                        super.init(nibName: nil, bundle: nil)
                        self.id = id
            }
    init(model:MeditationModel) {
        super.init(nibName: nil, bundle: nil)
        self.model = model
    }
            required init?(coder: NSCoder) {
                        fatalError("init(coder:) has not been implemented")
@@ -57,7 +55,18 @@
            override func viewDidLoad() {
                        super.viewDidLoad()
                        title = "心泉·疗愈"
                        title = "泉疗愈"
        if settingViewModel?.bgm != nil {
            audioPlayer.scenePlayer?.pause()
        }
        yy_popBlock = {[weak self] in
            if AudioPlayer.getSharedInstance().meditationModel == nil && self?.settingViewModel?.bgm != nil{
                self?.audioPlayer.playScene()
            }
            self?.navigationController?.popViewController()
        }
                        btn_playMode.isSelected = settingViewModel?.playModel == .singleLoop
@@ -67,19 +76,19 @@
                                    endMiniRunloop()
                        }
                        Services.getMeditationDetail(id: id).subscribe(onNext: {[unowned self] data in
            if let m = data.data{
                self.model = m
                let dateTuple = Date.jq_formateToTime_tuple(m.meditationSecondList.first ?? 0)
                self.label_totalTime.text = String(format: "%02ld:%02ld", dateTuple.hour * 60 + dateTuple.minute,dateTuple.second)
                self.collect_bitem.image = m.favorite == .yes ? UIImage(named: "btn_collect_1_s"):UIImage(named: "btn_collect_1")
                self.collect_bitem.tintColor = m.favorite == .yes ? UIColor(hexString: "fe5b60"):.white
                self.img_background.sd_setImage(with: URL(string: data.data?.backgroundUrl ?? ""))
                if audioPlayer.meditationModel?.id == m.id{
                    audioPlayer.delegate = self
                }
        if let m = model {
            label_title.text = m.meditationTitle
            label_subtitle.text = m.detailDescription
            label_commentNum.text = "\(m.questionCount)"
            let dateTuple = Date.jq_formateToTime_tuple(m.meditationSecondList.first ?? 0)
            self.label_totalTime.text = String(format: "%02ld:%02ld", dateTuple.hour * 60 + dateTuple.minute,dateTuple.second)
            self.collect_bitem.image = m.favorite == .yes ? UIImage(named: "btn_collect_1_s"):UIImage(named: "btn_collect_1")
            self.collect_bitem.tintColor = m.favorite == .yes ? UIColor(hexString: "fe5b60"):.white
            self.img_background.sd_setImage(with: URL(string: m.backgroundUrl.jq_urlEncoded()))
            if audioPlayer.meditationModel?.id == m.id{
                audioPlayer.delegate = self
            }
                        }).disposed(by: disposeBag)
        }
        //如果从支付过来的,移除支付
        navigationController!.viewControllers.removeAll { vc in
@@ -100,6 +109,7 @@
        super.viewDidDisappear(animated)
        if let m = model,timeLook > 0{
            audioPlayer.lisenMuseTime = 0
            Services.watchMuse(id: m.id, timeLook: timeLook).subscribe(onNext: {_ in
                NotificationCenter.default.post(name: TreeTaskUpdate_Noti, object: nil)
            }).disposed(by: disposeBag)
@@ -152,6 +162,10 @@
            let value = (v.double / 100.0) * weakSelf.totalInterval
            self?.audioPlayer.setBGMRate(value: value)
        }).disposed(by: disposeBag)
        NotificationCenter.default.rx.notification(CleanDetailTime_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self]_ in
            self?.timeLook = 0
        }).disposed(by: disposeBag)
            }
            private func startMiniRunloop(){
@@ -173,9 +187,18 @@
            @IBAction func playAction(_ sender: UIButton) {
        sender.isSelected = !sender.isSelected
                        if let m = model{
            if sender.isSelected{
                audioPlayer.playBGMAt(firstPlayIndex: 0, model: m, delegate: self,coverImage: img_background.image)
                if audioPlayer.meditationModel != nil{
                    if audioPlayer.meditationModel?.id != m.id{
                        audioPlayer.playBGMAt(firstPlayIndex: 0, model: m, delegate: self,coverImage: img_background.image)
                    }else{
                        audioPlayer.bgmPlayer?.play()
                        audioPlayer.masterPlayer?.play()
                    }
                }else{
                    audioPlayer.playBGMAt(firstPlayIndex: 0, model: m, delegate: self,coverImage: img_background.image)
                }
            }else{
                audioPlayer.bgmPlayer?.pause()
            }