杨锴
2024-11-20 c649531411191cd60591eafcd9c3b9a9fede13e4
XQMuse/Root/Home/HomeVC.swift
@@ -39,7 +39,7 @@
            private var titleItems = [TitleItem]()
            private var viewModel = HomeViewModel()
    private var timer:Timer?
    private var needPopToTree:Bool = false //是否需要跳转到树苗
    private var needPopToTree:Bool = false //是否需跳转到树苗
    private var cellularData:CTCellularData!
@@ -344,13 +344,14 @@
    @objc func autoUpdate(){
        guard !(viewModel.todyModel?.endPlayTime.isEmpty ?? true) else {return}
        guard let endPlayTime = viewModel.todyModel?.endPlayTime, !endPlayTime.isEmpty else { return }
        let todayEndDay = Date().jq_format("yyyy-MM-dd") + " \(viewModel.todyModel!.endPlayTime)"
        let todayEndDay = Date().jq_format("yyyy-MM-dd") + " \(endPlayTime)"
        let endDayInterval = Date.jq_StringToTimeInterval(todayEndDay,"yyyy-MM-dd HH:mm:ss")
        if Date().timeIntervalSince1970 > endDayInterval{
            Services.getTopdayMedita().subscribe(onNext: { data in
            Services.getTopdayMedita().subscribe(onNext: { [weak self] data in
                guard let self = self else { return }
                self.viewModel.todyModel = data.data
                self.tableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .none)
            }).disposed(by: disposeBag)
@@ -384,6 +385,15 @@
                                                }
                        }
            }
    deinit {
        // 使定时器失效
        timer?.invalidate()
        // 移除通知中心观察者
        NotificationCenter.default.removeObserver(self)
    }
}
extension HomeVC:UITableViewDelegate & UITableViewDataSource{
@@ -391,41 +401,45 @@
            func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        if indexPath.section == 0{
            if let m = viewModel.todyModel,let detailId = m.clientMeditationVO?.id{
                if AudioPlayer.getSharedInstance().meditationModel?.id == m.meditationId{
                    if AudioPlayer.getSharedInstance().bgmPlayer?.timeControlStatus == .paused{
                        AudioPlayer.getSharedInstance().bgmPlayer?.play()
                        AudioPlayer.getSharedInstance().masterPlayer?.play()
                        PayMusicVC.updateStatus(.playing)
                        self.viewModel.todyModel?.playAtMe = true
                    }else{
                        AudioPlayer.getSharedInstance().bgmPlayer?.pause()
                        AudioPlayer.getSharedInstance().masterPlayer?.pause()
                        PayMusicVC.updateStatus(.pause)
                        self.viewModel.todyModel?.playAtMe = false
            guard let m = viewModel.todyModel, let detailId = m.clientMeditationVO?.id else {
                alert(msg: "平台暂未设置今日疗愈")
                return
                    }
                    DispatchQueue.main.asyncAfter(delay: 0.4) {
            let audioPlayer = AudioPlayer.getSharedInstance()
            let isSameMeditation = audioPlayer.meditationModel?.id == m.meditationId
            let isPaused = audioPlayer.bgmPlayer?.timeControlStatus == .paused
            if isSameMeditation {
                if isPaused {
                    audioPlayer.bgmPlayer?.play()
                    audioPlayer.masterPlayer?.play()
                    PayMusicVC.updateStatus(.playing)
                    viewModel.todyModel?.playAtMe = true
                } else {
                    audioPlayer.bgmPlayer?.pause()
                    audioPlayer.masterPlayer?.pause()
                    PayMusicVC.updateStatus(.pause)
                    viewModel.todyModel?.playAtMe = false
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.4) {
                        self.tableView.reloadData()
                    }
                }else{
                    //游客模式都能播放
                    Services.getMeditationDetail(id: detailId).subscribe(onNext: {[weak self]data in
                        if let m = data.data{
                    guard let self = self, let m = data.data else { return }
                            if AudioPlayer.getSharedInstance().meditationModel?.id == m.id && AudioPlayer.getSharedInstance().bgmPlayer?.timeControlStatus == .playing{
                    if audioPlayer.meditationModel?.id == m.id && audioPlayer.bgmPlayer?.timeControlStatus == .playing {
                                return
                            }
                            AudioPlayer.getSharedInstance().playBGMAt(firstPlayIndex: 0, model: m, delegate: self)
                    audioPlayer.playBGMAt(firstPlayIndex: 0, model: m, delegate: self)
                            PayMusicVC.show(model: m,isHidden: false)
                            self?.viewModel.todyModel?.playAtMe = true
                            DispatchQueue.main.asyncAfter(delay: 1.0) {
                                self?.tableView.reloadData()
                            }
                    self.viewModel.todyModel?.playAtMe = true
                    DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
                        self.tableView.reloadData()
                        }
                    }).disposed(by: disposeBag)
                }
            }else{
                alert(msg: "平台暂未设置今日疗愈")
            }
        }
@@ -535,7 +549,6 @@
                        }
                        return headerView
            }
}