杨锴
2025-04-16 09a372bc45fde16fd42257ab6f78b8deeecf720b
XQMuse/Root/PayMusicView/PayMusicVC.swift
@@ -507,27 +507,27 @@
            /// 播放场景音乐
            func playSceneAt(_ url:String){
        guard let URL = URL(string: url.jq_urlEncoded()) else { return }
                        scenePlayer?.pause()
        checkCacheAudio(from: URL(string: url.jq_urlEncoded())!) {[weak self] state, url in
            guard let weakSelf = self else { return }
            weakSelf.scenePlayer?.pause()
                        if scenePlayer == nil{
                                    scenePlayer = AVPlayer(url: URL)
                        }else{
                                    scenePlayer?.replaceCurrentItem(with: AVPlayerItem(url: URL))
                        }
            if weakSelf.scenePlayer == nil{
                weakSelf.scenePlayer = AVPlayer(url: url)
            }else{
                weakSelf.scenePlayer?.replaceCurrentItem(with: AVPlayerItem(url: url))
            }
        do {
            try AVAudioSession.sharedInstance().setActive(false)
            try AVAudioSession.sharedInstance().setCategory(.ambient, mode: .default, options: [])
        } catch {
            print(error)
            do {
                try AVAudioSession.sharedInstance().setActive(false)
                try AVAudioSession.sharedInstance().setCategory(.ambient, mode: .default, options: [])
            } catch {
                print(error)
            }
            DispatchQueue.main.asyncAfter(delay: 0.5) {
                weakSelf.scenePlayer?.play()
            }
        }
        DispatchQueue.main.asyncAfter(delay: 0.5) {
                                    self.scenePlayer?.play()
//            self.scenePlayer?.allowsExternalPlayback = false
//            self.scenePlayer?.usesExternalPlaybackWhileExternalScreenIsActive = false
                        }
            }
            func dellocScene(){
@@ -651,14 +651,18 @@
                        // 检查缓存中是否已存在文件
                        if FileManager.default.fileExists(atPath: videoCacheUrl.path) {
            print("启用缓存")
                                    completion(true,videoCacheUrl)
                                    return
                        }else{
                                    completion(false,url)
            print("没有缓存:执行下载")
                        }
                        // 使用URLSession下载视频
                        let downloadTask = session.downloadTask(with: url) { tempLocalUrl, response, error in
                        let downloadTask = session.downloadTask(with: url) {
            tempLocalUrl, response, error in
            print("执行下载任务")
                                    if let tempLocalUrl = tempLocalUrl, error == nil {
                                                do {
                                                            let temp = videoCacheUrl