From c5e51c0ec3cbf1016f3bfbd58b0f0a004aaa9900 Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期二, 18 二月 2025 17:58:45 +0800
Subject: [PATCH] fix

---
 XQMuse/Root/Home/View/HomeTopMenuView.swift |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/XQMuse/Root/Home/View/HomeTopMenuView.swift b/XQMuse/Root/Home/View/HomeTopMenuView.swift
index ebe9fbd..d813fe2 100644
--- a/XQMuse/Root/Home/View/HomeTopMenuView.swift
+++ b/XQMuse/Root/Home/View/HomeTopMenuView.swift
@@ -8,6 +8,7 @@
 import UIKit
 import JQTools
 import RxSwift
+import AVFoundation
 
 enum ImageFromType {
 				case local
@@ -31,9 +32,12 @@
 				private var defaultItems = [HomeTopMenuItem]()
 				private var clouse:((HomeTopMenuItem)->Void)?
 
+    private var aVPlayerLayer:AVPlayerLayer?
+
 				override func awakeFromNib() {
 								super.awakeFromNib()
 
+        image_top.layer.masksToBounds = true
         image_top.image = UIImage(named: "home_top_bg")
 								menu_height.constant = 119
 								menu_collectionView.delegate = self
@@ -46,14 +50,65 @@
 								defaultItems.append(HomeTopMenuItem(title: "清业疗愈", image: "icon_quiet", imageFrom: .local))
 								defaultItems.append(HomeTopMenuItem(title: "亲子疗愈", image: "icon_parent-child", imageFrom: .local))
 								menu_collectionView.reloadData()
+
+        NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: nil, queue: nil) { [weak self] data in
+            self?.aVPlayerLayer?.player?.seek(to: .zero)
+            self?.aVPlayerLayer?.player?.play()
+        }
+
+        if let url = Bundle.main.url(forResource: "bg_water", withExtension: "mov"){
+            setPlayer(url: url)
+        }
+
 				}
 
 				func resetTopImage(){
-        if let imgUrl = UserDefaultSettingViewModel.getSetting()?.sceneMusicModel?.imageUrl.jq_urlEncoded(){
+        var needLocalVideo = false
+        if let imgUrl = UserDefaultSettingViewModel.getSetting()?.sceneMusicModel?.imageUrl.jq_urlEncoded(),imgUrl.isEmpty == false{
 												image_top.sd_setImage(with: URL(string: imgUrl))
-								}
+        }else{
+            image_top.image = UIImage(named: "home_top_bg")
+            needLocalVideo = true
+        }
+
+        if let model = UserDefaultSettingViewModel.getSetting()?.sceneMusicModel{
+
+            aVPlayerLayer?.player?.pause()
+            aVPlayerLayer?.removeFromSuperlayer()
+            aVPlayerLayer = nil
+
+            if model.backName?.isEmpty ?? true && model.imageUrl.isEmpty == false{
+                image_top.sd_setImage(with: URL(string: model.imageUrl.jq_urlEncoded()))
+            }
+
+            if let videoUrl = model.backUrl,videoUrl.isEmpty == false{
+                setPlayer(url: URL(string: videoUrl)!)
+                return
+            }
+
+            if needLocalVideo{
+                if let url = Bundle.main.url(forResource: "bg_water", withExtension: "mov"){
+                    setPlayer(url: url)
+                }
+            }
+        }
 				}
 
+    private func setPlayer(url:URL){
+
+        let player = AVPlayer(url: url)
+        player.play()
+        player.isMuted = true
+
+        if aVPlayerLayer == nil{
+            aVPlayerLayer = AVPlayerLayer()
+            aVPlayerLayer = AVPlayerLayer(player: player)
+            aVPlayerLayer?.frame = image_top.frame
+            aVPlayerLayer?.videoGravity = .resizeAspectFill
+            self.layer.addSublayer(aVPlayerLayer!)
+        }
+    }
+
 				func resetItems(_ items:[HomeTopMenuItem]){
 								defaultItems.removeAll()
 								defaultItems = items

--
Gitblit v1.7.1