杨锴
2024-11-04 f4c46a585290d8136819673dfff2df9ea5c5a330
XQMuse/Root/Plans/PlanGuideVC.swift
@@ -22,8 +22,6 @@
            @IBOutlet weak var label_info: UILabel!
            @IBOutlet weak var btn_custom: UIButton!
    private let masterPlayer = AudioPlayer.getSharedInstance()
            private lazy var player:AVPlayer = {
                        let bgPath = Bundle.main.url(forResource: "bg_movie", withExtension: "mov")
                        let p = AVPlayer(url: bgPath!)
@@ -31,17 +29,40 @@
                        return p
            }()
    private lazy var bgplayer:AVPlayer = {
        let p = AVPlayer()
        return p
    }()
            private lazy var playerLayer:AVPlayerLayer = {
                        let pLayer = AVPlayerLayer()
                        pLayer.videoGravity = .resize
        pLayer.videoGravity = .resizeAspectFill
                        return pLayer
            }()
            override func viewDidLoad() {
                        super.viewDidLoad()
         let tempModel = MeditationModel()
        masterPlayer.playSceneAt(backgroundVoiceUrl)
        Services.getPlan().subscribe(onNext: {[weak self]data in
            if let url = data.data{
                self?.bgplayer.replaceCurrentItem(with: AVPlayerItem(url: URL(string: url)!))
                self?.bgplayer.play()
            }
        }).disposed(by: disposeBag)
        self.bgplayer.addPeriodicTimeObserver(forInterval: CMTimeMake(value: 1, timescale: 1), queue: DispatchQueue.main) {[weak self] time in
            guard let weakSelf = self else { return }
            //当前正在播放的时间
            let loadTime = CMTimeGetSeconds(time)
            //视频总时间
            let totalTime = CMTimeGetSeconds((weakSelf.bgplayer.currentItem?.duration)!)
            if loadTime >= totalTime{
                weakSelf.bgplayer.seek(to: CMTime.zero)
                weakSelf.bgplayer.play()
            }
        }
            }
            override func viewWillAppear(_ animated: Bool) {
@@ -123,7 +144,7 @@
            }
    deinit{
        masterPlayer.clean()
    }
}