Przeglądaj źródła

提测3.6.25(1)

100Years 21 godzin temu
rodzic
commit
4267c6f7c2

+ 4 - 4
AIEmoji.xcodeproj/project.pbxproj

@@ -224,6 +224,7 @@
 		A89EA6CA2D642C0A000EB181 /* TSChatViewController+SendMsg.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89EA6C92D642C03000EB181 /* TSChatViewController+SendMsg.swift */; };
 		A89EA6CC2D642CE2000EB181 /* TSChatViewController+NaviBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89EA6CB2D642CD4000EB181 /* TSChatViewController+NaviBar.swift */; };
 		A89EA6CF2D6430F3000EB181 /* TSChatViewController+Keyboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89EA6CE2D6430EE000EB181 /* TSChatViewController+Keyboard.swift */; };
+		A8A2F0DC2E3B6B2200E7B86B /* Photo Animater.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = A8A2F0DB2E3B6B2100E7B86B /* Photo Animater.mp4 */; };
 		A8B70BC92E08E416003177FA /* TSGenerateHistoryVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B70BC82E08E416003177FA /* TSGenerateHistoryVC.swift */; };
 		A8B70BCB2E08F28F003177FA /* TSGenerateHistoryCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B70BCA2E08F28B003177FA /* TSGenerateHistoryCell.swift */; };
 		A8B70BD22E08F2F4003177FA /* TSGenerateBaseOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B70BCD2E08F2F4003177FA /* TSGenerateBaseOperation.swift */; };
@@ -259,7 +260,6 @@
 		A8EB1AA32E320438001F58D7 /* Happy Birthday.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = A8EB1A8C2E320438001F58D7 /* Happy Birthday.mp4 */; };
 		A8EB1AA42E320438001F58D7 /* Making Face.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = A8EB1A902E320438001F58D7 /* Making Face.mp4 */; };
 		A8EB1AA52E320438001F58D7 /* Anime Me.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = A8EB1A862E320438001F58D7 /* Anime Me.mp4 */; };
-		A8EB1AA62E320438001F58D7 /* Photo Animater.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = A8EB1A962E320438001F58D7 /* Photo Animater.mp4 */; };
 		A8EB1AA72E320438001F58D7 /* Lafufu.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = A8EB1A8F2E320438001F58D7 /* Lafufu.mp4 */; };
 		A8EB1AA92E320438001F58D7 /* Fly.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = A8EB1A882E320438001F58D7 /* Fly.mp4 */; };
 		A8EB1AAA2E320438001F58D7 /* Funny Pet.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = A8EB1A8A2E320438001F58D7 /* Funny Pet.mp4 */; };
@@ -616,6 +616,7 @@
 		A89EA6C92D642C03000EB181 /* TSChatViewController+SendMsg.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TSChatViewController+SendMsg.swift"; sourceTree = "<group>"; };
 		A89EA6CB2D642CD4000EB181 /* TSChatViewController+NaviBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TSChatViewController+NaviBar.swift"; sourceTree = "<group>"; };
 		A89EA6CE2D6430EE000EB181 /* TSChatViewController+Keyboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TSChatViewController+Keyboard.swift"; sourceTree = "<group>"; };
+		A8A2F0DB2E3B6B2100E7B86B /* Photo Animater.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Photo Animater.mp4"; sourceTree = "<group>"; };
 		A8B70BC82E08E416003177FA /* TSGenerateHistoryVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSGenerateHistoryVC.swift; sourceTree = "<group>"; };
 		A8B70BCA2E08F28B003177FA /* TSGenerateHistoryCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSGenerateHistoryCell.swift; sourceTree = "<group>"; };
 		A8B70BCD2E08F2F4003177FA /* TSGenerateBaseOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSGenerateBaseOperation.swift; sourceTree = "<group>"; };
@@ -664,7 +665,6 @@
 		A8EB1A932E320438001F58D7 /* MuscleUp.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = MuscleUp.mp4; sourceTree = "<group>"; };
 		A8EB1A942E320438001F58D7 /* Oscar Gala.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Oscar Gala.mp4"; sourceTree = "<group>"; };
 		A8EB1A952E320438001F58D7 /* Pet to Human.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pet to Human.mp4"; sourceTree = "<group>"; };
-		A8EB1A962E320438001F58D7 /* Photo Animater.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Photo Animater.mp4"; sourceTree = "<group>"; };
 		A8EB1A972E320438001F58D7 /* Pinch.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = Pinch.mp4; sourceTree = "<group>"; };
 		A8EB1A982E320438001F58D7 /* Pixel World.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pixel World.mp4"; sourceTree = "<group>"; };
 		A8EB1A992E320438001F58D7 /* PUBG Winner Hit.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "PUBG Winner Hit.mp4"; sourceTree = "<group>"; };
@@ -1456,7 +1456,6 @@
 				A8EB1A932E320438001F58D7 /* MuscleUp.mp4 */,
 				A8EB1A942E320438001F58D7 /* Oscar Gala.mp4 */,
 				A8EB1A952E320438001F58D7 /* Pet to Human.mp4 */,
-				A8EB1A962E320438001F58D7 /* Photo Animater.mp4 */,
 				A8EB1A972E320438001F58D7 /* Pinch.mp4 */,
 				A8EB1A982E320438001F58D7 /* Pixel World.mp4 */,
 				A8EB1A992E320438001F58D7 /* PUBG Winner Hit.mp4 */,
@@ -1464,6 +1463,7 @@
 				A8EB1A9D2E320438001F58D7 /* Surprise Flower.mp4 */,
 				A8EB1A9E2E320438001F58D7 /* Toy Me.mp4 */,
 				A8EB1A9F2E320438001F58D7 /* Walking with Beasts.mp4 */,
+				A8A2F0DB2E3B6B2100E7B86B /* Photo Animater.mp4 */,
 			);
 			path = Video;
 			sourceTree = "<group>";
@@ -2693,9 +2693,9 @@
 				A8EB1AA12E320438001F58D7 /* French Kiss.mp4 in Resources */,
 				A8EB1AA22E320438001F58D7 /* Fairy.mp4 in Resources */,
 				A8EB1AA32E320438001F58D7 /* Happy Birthday.mp4 in Resources */,
+				A8A2F0DC2E3B6B2200E7B86B /* Photo Animater.mp4 in Resources */,
 				A8EB1AA42E320438001F58D7 /* Making Face.mp4 in Resources */,
 				A8EB1AA52E320438001F58D7 /* Anime Me.mp4 in Resources */,
-				A8EB1AA62E320438001F58D7 /* Photo Animater.mp4 in Resources */,
 				A8EB1AA72E320438001F58D7 /* Lafufu.mp4 in Resources */,
 				A8EB1AA92E320438001F58D7 /* Fly.mp4 in Resources */,
 				A8EB1AAA2E320438001F58D7 /* Funny Pet.mp4 in Resources */,

+ 6 - 0
AIEmoji/Assets.xcassets/Discover/banner/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 21 - 0
AIEmoji/Assets.xcassets/Discover/banner/discover_0_AnimeBanner.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "discover_0_AnimeBanner@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
AIEmoji/Assets.xcassets/Discover/banner/discover_0_AnimeBanner.imageset/discover_0_AnimeBanner@2x.png


+ 29 - 14
AIEmoji/Business2/DisCover/Data/TSDiscoverViewModel+Data.swift

@@ -11,13 +11,11 @@ let kTSDiscoverVM = TSDiscoverViewModel.shared
 class TSDiscoverViewModel {
     static let shared: TSDiscoverViewModel = TSDiscoverViewModel()
 
-    lazy var bannerSection: TSDiscoverSectionModel = {
-        let section = TSDiscoverSectionModel()
-        section.style = .banner
-        section.setTitle(title: "")
-        section.items = [[
+    
+    lazy var bannerItems: [TSDiscoverItemModel] = {
+        return [
             TSDiscoverItemModel(style: .ptp,
-                                viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Anime", "discover_1_Anime"]),
+                                viewModel: TSDiscoverBaseItemVM(title: "", imageNamed:"discover_0_AnimeBanner"),
                                 generateModel: TSGenerateModel(json: ptp_Anime)),
             TSDiscoverItemModel(style: .videoV2,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Animal Diving Show.mp4"]),
@@ -25,16 +23,20 @@ class TSDiscoverViewModel {
             TSDiscoverItemModel(style: .videoV2,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Oscar Gala.mp4"]),
                                 generateModel: TSGenerateModel(json: video_OscarGala)),
-        ]]
-
+        ]
+    }()
+    
+    lazy var bannerSection: TSDiscoverSectionModel = {
+        let section = TSDiscoverSectionModel()
+        section.style = .banner
+        section.setTitle(title: "")
+        section.items = [bannerItems]
         return section
     }()
 
-    lazy var videoEffectSection: TSDiscoverSectionModel = {
-        let section = TSDiscoverSectionModel()
-        section.style = .styleMore
-        section.setTitle(title: "Video Effect".localized, imageNamed: "🎞️", colors: ["#E7D1AB", "#FFFFFF"])
-        section.items = [[
+    
+    lazy var videoEffectItems: [TSDiscoverItemModel] = {
+        return [
             TSDiscoverItemModel(style: .videoV2,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["360° Microwave.mp4"]),
                                 generateModel: TSGenerateModel(json: video_360Microwave)),
@@ -116,7 +118,20 @@ class TSDiscoverViewModel {
 //            TSDiscoverItemModel(style: .videoV2,
 //                                viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["French Kiss.mp4"]),
 //                                generateModel: TSGenerateModel(json: video_FrenchKiss))
-        ]]
+            
+            TSDiscoverItemModel(style: .videoV2,
+                                viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Photo Animater.mp4"]),
+                                generateModel: TSGenerateModel(json: video_PhotoAnimater),
+                                showAtHome: false
+                               )
+        ]
+    }()
+    
+    lazy var videoEffectSection: TSDiscoverSectionModel = {
+        let section = TSDiscoverSectionModel()
+        section.style = .styleMore
+        section.setTitle(title: "Video Effect".localized, imageNamed: "🎞️", colors: ["#E7D1AB", "#FFFFFF"])
+        section.items = [videoEffectItems.filter({$0.showAtHome == true})]
 
         return section
     }()

+ 4 - 2
AIEmoji/Business2/DisCover/Data/TSDiscoverViewModel.swift

@@ -102,7 +102,7 @@ class TSDiscoverItemModel {
     var style:TSFuncStyle = .ptp
     var viewModel:TSDiscoverBaseItemVM
     var generateModel:TSGenerateModel?
-    
+    var showAtHome:Bool = true
     var name:String {
         if viewModel.title.isEmpty {
             if let generateModel = generateModel,!generateModel.imageText.isEmpty{
@@ -124,9 +124,11 @@ class TSDiscoverItemModel {
     
     init(style: TSFuncStyle,
          viewModel:TSDiscoverBaseItemVM,
-         generateModel: TSGenerateModel? = nil) {
+         generateModel: TSGenerateModel? = nil,
+         showAtHome:Bool = true) {
         self.style = style
         self.viewModel = viewModel
         self.generateModel = generateModel
+        self.showAtHome = showAtHome
     }
 }

+ 1 - 1
AIEmoji/Business2/DisCover/TSAIGenerateVC/TSAIGenerateBaseVC/TSAIGenerateBaseVC.swift

@@ -28,7 +28,7 @@ class TSAIGenerateBaseVC: TSBaseVC {
             updateResultView()
         }
     }
-    
+    //infoModel这个是用来显示数据库已有数据的,新生成就不要传递
     init(generatorModel:TSAIGeneratorModel,infoModel:TSActionInfoModel? = nil,complete:@escaping ((TSActionInfoModel)->Void)) {
         self.generatorModel = generatorModel
         self.complete = complete

+ 46 - 25
AIEmoji/Business2/DisCover/TSDiscoverVC/Cell/TSDiscoverBannerCell.swift

@@ -20,7 +20,7 @@ class TSDiscoverBannerCell: TSDiscoverBaseCell {
                 guard let collectionView = self.cyclePagerView.collectionView else { return }
                 let visibleCells = collectionView.getAllLoadedCells()
                 for cell in visibleCells {
-                    if let cl = cell as? TSDiscoverBannerViewCell {
+                    if let cl = cell as? TSDiscoverBannerViewVideoCell {
                         cl.setVideoPlayer()
                     }
                 }
@@ -50,13 +50,13 @@ class TSDiscoverBannerCell: TSDiscoverBaseCell {
         pagerView.delegate = self
         pagerView.dataSource = self
         pagerView.layout.layoutType = TYCyclePagerTransformLayoutType.linear
-        pagerView.register(TSDiscoverBannerViewCell.classForCoder(), forCellWithReuseIdentifier: TSDiscoverBannerViewCell.reuseIdentifier)
-
+        pagerView.register(TSDiscoverBannerViewVideoCell.classForCoder(), forCellWithReuseIdentifier: "TSDiscoverBannerViewVideoCell")
+        pagerView.register(TSDiscoverBannerViewImageCell.classForCoder(), forCellWithReuseIdentifier: "TSDiscoverBannerViewImageCell")
         pagerView.addSubview(pageControl)
         pageControl.snp.makeConstraints { make in
-            make.bottom.equalTo(-58)
+            make.bottom.equalTo(-52)
             make.leading.trailing.equalTo(0)
-            make.height.equalTo(14)
+            make.height.equalTo(6)
         }
 
         return pagerView
@@ -101,7 +101,7 @@ class TSDiscoverBannerCell: TSDiscoverBaseCell {
         cyclePagerView.snp.makeConstraints { make in
             make.top.equalToSuperview()
             make.horizontalEdges.equalToSuperview()
-            make.bottom.equalTo(imageToVideoView.snp.bottom).offset(-34)
+            make.bottom.equalTo(-31)
         }
 
         let itemViewW = (k_ScreenWidth - 32 - 13) / 2.0
@@ -142,18 +142,31 @@ class TSDiscoverBannerCell: TSDiscoverBaseCell {
 }
 
 extension TSDiscoverBannerCell: TYCyclePagerViewDelegate, TYCyclePagerViewDataSource {
+    
+    func getReuseIdentifier(itemModel:TSDiscoverItemModel) -> String?{
+        if let animationModel = itemModel.viewModel as? TSDiscoverAnimationItemVM {
+            if animationModel.style == .video {
+                return "TSDiscoverBannerViewVideoCell"
+            }
+        }else{
+            return "TSDiscoverBannerViewImageCell"
+        }
+        return nil
+    }
+    
     func numberOfItems(in pageView: TYCyclePagerView) -> Int {
         return models.count
     }
 
     func pagerView(_ pagerView: TYCyclePagerView, cellForItemAt index: Int) -> UICollectionViewCell {
-        let cell = pagerView.dequeueReusableCell(withReuseIdentifier: TSDiscoverBannerViewCell.reuseIdentifier, for: index) as! TSDiscoverBannerViewCell
-
-        if let itemModel = models.safeObj(At: index) {
+        if let itemModel = models.safeObj(At: index),
+           let identifier = getReuseIdentifier(itemModel: itemModel),
+           let cell = pagerView.dequeueReusableCell(withReuseIdentifier: identifier, for: index) as? TSDiscoverBannerViewImageCell
+        {
             cell.model = itemModel
+            return cell
         }
-
-        return cell
+        return UICollectionViewCell()
     }
 
     func layout(for pageView: TYCyclePagerView) -> TYCyclePagerViewLayout {
@@ -194,10 +207,7 @@ extension TSDiscoverBannerCell: TYCyclePagerViewDelegate, TYCyclePagerViewDataSo
 }
 
 // MARK: TSDiscoverBannerViewCell
-
-class TSDiscoverBannerViewCell: TSBaseCollectionCell {
-    static let reuseIdentifier = "TSDiscoverBannerViewCell"
-
+class TSDiscoverBannerViewImageCell: TSBaseCollectionCell {
     lazy var textLabel: UILabel = {
         let textLabel = UILabel.createLabel(font: .font(size: 22, weight: .semibold), textColor: .white)
         return textLabel
@@ -220,20 +230,12 @@ class TSDiscoverBannerViewCell: TSBaseCollectionCell {
         return tryNowBtn
     }()
 
-    var videoPlayer: TSVideoPlayer?
-    var videoURL: URL?
 
     var model: TSDiscoverItemModel? {
         didSet {
             guard let model = model else { return }
             textLabel.text = model.name
-
-            if let animationModel = model.viewModel as? TSDiscoverAnimationItemVM, let imageNamed = animationModel.imageNameds.first {
-                if let videoURL = Bundle.main.url(forResource: imageNamed, withExtension: nil) {
-                    self.videoURL = videoURL
-                    imageView.image = TSVideoPlayer.getFirstFrameOnly(url: videoURL)
-                }
-            }
+            imageView.image = UIImage(named: model.imageNamed)
         }
     }
 
@@ -255,7 +257,7 @@ class TSDiscoverBannerViewCell: TSBaseCollectionCell {
         textLabel.snp.makeConstraints { make in
             make.leading.equalTo(16)
             make.trailing.equalTo(-111)
-            make.bottom.equalTo(-53)
+            make.bottom.equalTo(-58)
             make.height.equalTo(52)
         }
 
@@ -265,6 +267,25 @@ class TSDiscoverBannerViewCell: TSBaseCollectionCell {
             make.height.equalTo(24)
         }
     }
+}
+class TSDiscoverBannerViewVideoCell: TSDiscoverBannerViewImageCell {
+
+    var videoPlayer: TSVideoPlayer?
+    var videoURL: URL?
+
+    override var model: TSDiscoverItemModel? {
+        didSet {
+            guard let model = model else { return }
+            textLabel.text = model.name
+            
+            if let animationModel = model.viewModel as? TSDiscoverAnimationItemVM, let imageNamed = animationModel.imageNameds.first {
+                if let videoURL = Bundle.main.url(forResource: imageNamed, withExtension: nil) {
+                    self.videoURL = videoURL
+                    imageView.image = TSVideoPlayer.getFirstFrameOnly(url: videoURL)
+                }
+            }
+        }
+    }
 
     func setVideoPlayer() {
         guard let videoURL = videoURL else { return }

+ 62 - 25
AIEmoji/Business2/DisCover/TSPTPUploadImageVC/TSPTPUploadImageVC+View.swift

@@ -31,32 +31,9 @@ extension TSPTPUploadImageVC {
             viewModel.selectedStyleIndex = indexPath.item
             
             setTitleText(model.imageText.localized)
-
-            if viewModel.style == .videoV2 ||  viewModel.style == .photoLive{
-                var array:[TSDiscoverItemModel] = []
-                if let arr = TSDiscoverViewModel.shared.bannerSection.items.first as? [TSDiscoverItemModel] {
-                    array.append(contentsOf: arr)
-                }
-                if let arr = TSDiscoverViewModel.shared.videoEffectSection.items.first as? [TSDiscoverItemModel] {
-                    array.append(contentsOf: arr)
-                }
-                let model2 = array.first(where: { discoverItemModel in
-                    return discoverItemModel.generateModel?.imageText == model.imageText
-                })
-                if let discoverItemModel = model2,
-                   let animationItemVM = discoverItemModel.viewModel as? TSDiscoverAnimationItemVM,
-                   let imageNamed = animationItemVM.imageNameds.first{
-                    self.uploadView.uploadVideoView.setVideoName(name: imageNamed)
-                    
-                    if viewModel.upLoadImage == nil {
-                        self.uploadView.uploadVideoView.play()
-                        self.uploadView.uploadVideoView.touchButton.isSelected = true
-                    }
-                    
-                }
-            }
-    
+            selectStyleVideoHandle()
         }
+        
         selectStyleVC.scrollHandle = { [weak self] scroll in
             guard let self = self else { return }
             creatBtnView.isHidden = scroll
@@ -127,3 +104,63 @@ extension TSPTPUploadImageVC {
         updateVipView()
     }
 }
+extension TSPTPUploadImageVC {
+    
+    var isVideo:Bool{
+        if viewModel.style == .videoV2 ||  viewModel.style == .photoLive{
+            return true
+        }
+        return false
+    }
+    
+    
+    func addVideoPlayLogic(){
+        if isVideo{
+            kMainAsync {
+                self.uploadView.addVideoPlayLogic()
+                self.uploadView.uploadVideoView.setVideoName(name: self.itemModel.imageNamed)
+                self.uploadView.upLoadImage = self.uploadView.upLoadImage
+            }
+        }
+    }
+    
+    func selectStyleVideoHandle()  {
+        if isVideo{
+            var array:[TSDiscoverItemModel] = kTSDiscoverVM.bannerItems +  kTSDiscoverVM.videoEffectItems
+            let model2 = array.first(where: { discoverItemModel in
+                return discoverItemModel.generateModel?.imageText == viewModel.selectedPTPStyleModel.imageText
+            })
+            if let discoverItemModel = model2,
+               let animationItemVM = discoverItemModel.viewModel as? TSDiscoverAnimationItemVM,
+               let imageNamed = animationItemVM.imageNameds.first{
+                self.uploadView.uploadVideoView.setVideoName(name: imageNamed)
+                if viewModel.upLoadImage == nil {
+                    self.uploadView.uploadVideoView.play()
+                    self.uploadView.uploadVideoView.touchButton.isSelected = true
+                }
+            }
+        }
+    }
+    
+    
+    func judgeVideoImagesize()->Bool{
+        if isVideo,
+           viewModel.selectedPTPStyleModel.imageText == kTSDiscoverVM.video_Subject3.safeString(forKey: "imageText")     ||
+            viewModel.selectedPTPStyleModel.imageText == kTSDiscoverVM.video_PUBGWinnerHit.safeString(forKey: "imageText")  ||
+            viewModel.selectedPTPStyleModel.imageText == kTSDiscoverVM.video_MotorDance.safeString(forKey: "imageText"){
+           let size = viewModel.generatorModel.upLoadImage.size
+           if size.width/size.height < 0.5 || size.width/size.height > 0.83 {
+               TSCustomAlertController.show(in: self, config: TSCustomAlertController.AlertConfig(
+                   message: "Invalid aspect ratio. Must be 1:2 to 1:1.2.".localized,
+                   cancelTitle: "Got it".localized,
+                   cancelColor: .white,
+                   confirmTitle: ""
+               ))
+               return true
+           }
+        }
+        return false
+    }
+    
+    
+}

+ 4 - 7
AIEmoji/Business2/DisCover/TSPTPUploadImageVC/TSPTPUploadImageVC.swift

@@ -54,13 +54,7 @@ class TSPTPUploadImageVC: TSBaseVC {
             make.height.equalTo(48)
         }
         
-        if viewModel.style == .videoV2 ||  viewModel.style == .photoLive{
-            kMainAsync {
-                self.uploadView.addVideoPlayLogic()
-                self.uploadView.uploadVideoView.setVideoName(name: self.itemModel.imageNamed)
-                self.uploadView.upLoadImage = self.uploadView.upLoadImage
-            }
-        }
+        addVideoPlayLogic()
 
     }
     
@@ -78,6 +72,9 @@ class TSPTPUploadImageVC: TSBaseVC {
 
 extension TSPTPUploadImageVC {
     func generateImage() {
+
+        if judgeVideoImagesize(){ return }
+        
         let gennerateVC = TSAIGenerateVC(generatorModel: viewModel.generatorModel) { [weak self] _ in
             guard let self = self else { return }
             updateVipView()

+ 5 - 5
AIEmoji/Common/Tool/OperationQueue/V2/TSGenerateBaseOperation.swift

@@ -183,7 +183,9 @@ class TSGenerateBaseOperation: TSBaseOperation , @unchecked Sendable{
             return
         }
         
-        if currentActionInfoModel.request.generatorStyle == .photoLive{
+        if [TSFuncStyle.photoLive ,
+            TSFuncStyle.textToVideo,
+            TSFuncStyle.pictureToVideo].contains(currentActionInfoModel.request.generatorStyle){
             let group = DispatchGroup()
             //下载视频源
             group.enter()
@@ -202,16 +204,14 @@ class TSGenerateBaseOperation: TSBaseOperation , @unchecked Sendable{
             group.notify(queue: .main){[weak self]  in
                 guard let self = self else { return }
                 if infoModel.response.videoDocument.isEmpty {
-                    debugPrint("生成后下载photoLive失败,重新尝试retryDownloadCount=\(retryDownloadCount)")
+                    debugPrint("生成后下载视频+封面失败,重新尝试retryDownloadCount=\(retryDownloadCount)")
                     downResultUrl(infoModel: infoModel)
                 }else{
                     handleSuccess(infoModel: infoModel)
                 }
             }
             
-        }else if [TSFuncStyle.videoV2 ,
-                  TSFuncStyle.textToVideo,
-                  TSFuncStyle.pictureToVideo].contains(currentActionInfoModel.request.generatorStyle)
+        }else if [TSFuncStyle.videoV2].contains(currentActionInfoModel.request.generatorStyle)
         {
             downloadVideo(urlString: infoModel.response.resultUrl) { [weak self] url in
                 guard let self = self else { return }