| | |
| | | import MediaPlayer |
| | | import RxRelay |
| | | |
| | | |
| | | let ChangeMasterVoice_Noti = Notification.Name.init(rawValue: "ChangeMasterVoice_Noti") |
| | | |
| | | @objc enum PlayMusicState:Int{ |
| | | case playing = 1 |
| | | case paurse = 2 |
| | |
| | | }else{ |
| | | self.audioPlayer.bgmPlayer?.play() |
| | | self.audioPlayer.masterPlayer?.play() |
| | | self.audioPlayer.masterPlayer?.volume = Float(UserDefaultSettingViewModel.getSetting()?.masterVolume ?? 0.5) |
| | | self.startRunloopAni() |
| | | } |
| | | } |
| | |
| | | return instance |
| | | } |
| | | |
| | | private init() {} // 私有化init方法 |
| | | private init() { |
| | | |
| | | NotificationCenter.default.addObserver(forName: ChangeMasterVoice_Noti, object: nil, queue: .main) { noti in |
| | | if let value = noti.object as? Float{ |
| | | print("--->进入") |
| | | self.masterPlayer?.volume = value |
| | | } |
| | | } |
| | | } // 私有化init方法 |
| | | |
| | | //销毁单例对象 |
| | | class func destroy() { |
| | |
| | | self.meditationModel = model |
| | | |
| | | let urls = model.meditationMusicList.map { url in |
| | | return URL(string: url)! |
| | | return URL(string: url.jq_urlEncoded())! |
| | | } |
| | | |
| | | if urls.count == 0{ |
| | | alertError(msg: "数据获取失败");return |
| | | } |
| | | |
| | | let masterUrl = URL(string: model.tutorAudioUrl) |
| | | let masterUrl = URL(string: model.tutorAudioUrl.jq_urlEncoded()) |
| | | |
| | | autoreleasepool{[unowned self] () in |
| | | for url in urls { |
| | |
| | | |
| | | if masterUrl != nil{ |
| | | self.masterPlayer = AVPlayer(url: masterUrl!) |
| | | self.masterPlayer?.volume = Float(UserDefaultSettingViewModel.getSetting()?.masterVolume ?? 0.5) |
| | | self.masterPlayer?.play() |
| | | } |
| | | } |
| | |
| | | bgmPlayer?.replaceCurrentItem(with: AVPlayerItem(url: urls[index])) |
| | | bgmPlayer?.play() |
| | | } |
| | | |
| | | // @objc private func playbackEnd(){ |
| | | // if bgmPlayer?.actionAtItemEnd == AVPlayer.ActionAtItemEnd.pause && playIndex <= urls.count - 1{ |
| | | // next() |
| | | // self.delegate?.playState(.next) |
| | | // }else{ |
| | | // print("背景音乐播放完毕") |
| | | // self.delegate?.playState(.end) |
| | | // } |
| | | // |
| | | // if masterPlayer?.actionAtItemEnd == AVPlayer.ActionAtItemEnd.pause{ |
| | | // print("导师播放完毕") |
| | | // } |
| | | // } |
| | | |
| | | @objc private func playBGMbackEnd(){ |
| | | self.scenePlayer?.seek(to: CMTimeMake(value: 0, timescale: 1)) |