杨锴
2024-11-11 9e77b0f9014653255eb51e81b8a8ba719443839d
XQMuse/Root/PayMusicView/PayMusicVC.swift
@@ -177,6 +177,7 @@
            @objc func showDetailAction(){
                        if let id = meditationModel?.id{
            Services.getMeditationDetail(id: id).subscribe(onNext: {[weak self]data in
                guard let weakSelf = self else { return }
                if let m = data.data{
@@ -243,6 +244,9 @@
                                    self.startRunloopAni()
            PayMusicVC.updateStatus(.playing)
                        }
        DispatchQueue.main.asyncAfter(delay: 0.4) {
            NotificationCenter.default.post(name: ReloadData_Noti, object: nil, userInfo: nil)
        }
            }
            @objc func closeAction(_ btn:UIButton){
@@ -262,6 +266,10 @@
                if UserDefaultSettingViewModel.getSetting()?.bgm != nil{
                    AudioPlayer.getSharedInstance().playSceneAt(UserDefaultSettingViewModel.getSetting()!.bgm!.audioFile)
                }
                DispatchQueue.main.asyncAfter(delay: 0.4) {
                    NotificationCenter.default.post(name: ReloadData_Noti, object: nil, userInfo: nil)
                }
                                    }
                        }
            }
@@ -278,7 +286,7 @@
            private var timer:Timer?
            private(set) var times = BehaviorRelay<Int?>(value: nil) //倒计时定时器
            private static var _sharedInstance: AudioPlayer?
            private(set) var meditationModel:MeditationModel? //疗愈音频
            var meditationModel:MeditationModel? //疗愈音频
    var lisenMuseTime:Int = 0 //听疗愈时间记录
            weak var delegate:PayMusicDelegate?
@@ -396,8 +404,8 @@
                        autoreleasepool{[unowned self] () in
                                    for url in urls {
                                                self.checkCacheAudio(from: url) {[unowned self] _, url in
                                                            self.urls.append(url)
                self.checkCacheAudio(from: url) {[unowned self] _, url in
                    self.urls.append(url)
                                                }
                                    }
                                    self.bgmPlayer = AVPlayer(url: self.urls[firstPlayIndex])
@@ -422,7 +430,7 @@
                                    if let m = weakSelf.meditationModel{
                                                var dic = [String:Any]()
                                                dic[MPMediaItemPropertyTitle] = m
                dic[MPMediaItemPropertyTitle] = m.meditationTitle
                                                dic[MPMediaItemPropertyArtist] = "泉疗愈"
                                                dic[MPMediaItemPropertyDiscNumber] = 1
                                                dic[MPNowPlayingInfoPropertyElapsedPlaybackTime] = loadTime
@@ -442,8 +450,23 @@
                                    }
                        }
        self.bgmPlayer?.currentItem?.rx.observe(AVPlayerItem.Status.self,"status").subscribe(onNext: { _ in
        self.bgmPlayer?.rx.observe(AVPlayer.TimeControlStatus.self,"timeControlStatus").subscribe(onNext: { state in
            DispatchQueue.main.asyncAfter(delay: 1.0) {
                if state == .paused{
                    print("----》暂停")
                    PayMusicVC.updateStatus(.pause)
                }else if state == .playing{
                    print("----》播放")
                    PayMusicVC.updateStatus(.playing)
                }
            }
        }).disposed(by: disposeBag)
        self.bgmPlayer?.currentItem?.rx.observe(AVPlayerItem.Status.self,"status").subscribe(onNext: { _ in
            print("---MasterStatus1: \(self.masterPlayer?.status.rawValue ?? 0)")
            print("---bgmStatus1: \(self.bgmPlayer?.status.rawValue ?? 0)")
            if self.bgmPlayer?.status == .readyToPlay && self.masterPlayer?.status == .readyToPlay{
                self.bgmPlayer?.play()
                self.masterPlayer?.play()
@@ -453,6 +476,7 @@
        self.masterPlayer?.currentItem?.rx.observe(AVPlayerItem.Status.self,"status").subscribe(onNext: { _ in
            print("---MasterStatus: \(self.masterPlayer?.status.rawValue ?? 0)")
            print("---bgmStatus: \(self.bgmPlayer?.status.rawValue ?? 0)")
            if self.bgmPlayer?.status == .readyToPlay && self.masterPlayer?.status == .readyToPlay{
                self.bgmPlayer?.play()
                self.masterPlayer?.play()