Explorar o código

再创作逻辑

jsonwang %!s(int64=3) %!d(string=hai) anos
pai
achega
40b740155e

+ 7 - 1
BFFramework/Classes/PModels/PQReCreateModel.swift

@@ -24,7 +24,9 @@ public class PQReCreateModel: Object {
     @objc dynamic public var rhythmMusicFlag: Int = 0 // 是否有卡点音乐标记 1:是,0:否
     @objc dynamic public var rhythmMusicName: String? // 卡点音乐歌名
     var rhythmMusicNameWidth: CGFloat = 0 // 卡点音乐显示宽度
-
+    
+    // add by ak 卡点模式(1:跳跃卡点,2:快慢速,3:仅配乐)
+    @objc dynamic public var rhythmMode:Int = 0
     override required init() {
         super.init()
     }
@@ -55,6 +57,10 @@ public class PQReCreateModel: Object {
         if jsonDict.keys.contains("reProduceVideoFlag") {
             reProduceVideoFlag = Int("\(jsonDict["reProduceVideoFlag"] ?? "0")") ?? 0
         }
+        
+        if jsonDict.keys.contains("rhythmMode"){
+            rhythmMode = Int("\(jsonDict["rhythmMode"] ?? "0")") ?? 0
+        }
         if jsonDict.keys.contains("parentVideoId"), "\(jsonDict["parentVideoId"] ?? "")" != "<null>" {
             parentVideoId = "\(jsonDict["parentVideoId"] ?? "")"
         }

+ 28 - 8
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointEditerController.swift

@@ -47,6 +47,7 @@ class PQStuckPointEditerController: PQBaseViewController {
 
     // add by ak 是否是再创作模式
     var isReCreate: Bool = false
+    public var reCreateVideoData: PQReCreateModel? // 再创作数据
     // 最后一个选择的模式 BTN 用于还原选中状态
     var lastEditModelBtn: UIButton?
     
@@ -480,12 +481,6 @@ class PQStuckPointEditerController: PQBaseViewController {
     // 三种模式修改
     @objc func editModelClick(sender: UIButton) {
         
-        //1,根据条件判断哪些功能不可用直接出提示
-//        if(selectedDataCount == selectedImageDataCount && (sender == speedStuckBtn || sender == onlyMusicBtn )){
-//            BFLog(message: "全是图片 \(selectedDataCount) \(selectedImageDataCount)")
-//            cShowHUB(superView: self.view, msg: "1111")
-//            return
-//        }
 //        if sender.isSelected {
 //            BFLog(message: "已经是选中状态")
 //            return
@@ -1697,9 +1692,11 @@ extension PQStuckPointEditerController {
         if !isSynchroMusicInfoSuccess || !isStuckPointDataSuccess || !isExportVideosSuccess {
             return
         }
-        createPorjectData()
-        BFLog(message: "界面编辑界面时参数 选择素材时长:\(selectedTotalDuration) 选择素材总数:\(selectedDataCount) 选择图片总数\(selectedImageDataCount)")
         
+        
+        createPorjectData()
+        BFLog(message: "界面编辑界面时参数 选择素材时长:\(selectedTotalDuration) 选择素材总数:\(selectedDataCount) 选择图片总数\(selectedImageDataCount) 再创建类型:\(reCreateVideoData?.rhythmMode)")
+
  
         //1 生成默认参数值
         /*
@@ -1751,6 +1748,29 @@ extension PQStuckPointEditerController {
         }
         
         
+        
+        //如果是再创作进来的安原视频的模式
+        if(reCreateVideoData != nil){
+            
+            BFLog(message: "是再创作进来的 \(reCreateVideoData!.rhythmMode)")
+            switch reCreateVideoData!.rhythmMode {
+            case 1:
+                editModelClick(sender: jumpPointBtn)
+                break
+            case 2:
+                editModelClick(sender: speedStuckBtn)
+
+                break
+            case 3:
+                editModelClick(sender: onlyMusicBtn)
+                break
+            default: break
+                 
+            }
+            return
+        }
+        
+            
         /*
           文档规则 https://w42nne6hzg.feishu.cn/docs/doccnQZm1uCfkU4QtJb5fLxYk4d#
          */

+ 2 - 0
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointMaterialController.swift

@@ -25,6 +25,7 @@ public class PQStuckPointMaterialController: PQBaseViewController {
     var selectedImageDataCount: Int = 0
     // 再创作音乐数据
     public var reCreateMusicData: PQVoiceModel?
+    public var reCreateVideoData: PQReCreateModel? // 再创作数据
     lazy var changeCollecBtn: UIButton = {
         let changeCollecBtn = UIButton(frame: CGRect(x: cDefaultMargin * 5, y: cDevice_iPhoneStatusBarHei, width: cScreenWidth - cDefaultMargin * 10, height: cDefaultMargin * 4))
         changeCollecBtn.titleLabel?.lineBreakMode = .byTruncatingTail
@@ -252,6 +253,7 @@ public class PQStuckPointMaterialController: PQBaseViewController {
                 let stuckPointMusicVc = PQStuckPointMusicController()
                 stuckPointMusicVc.selectedMusicData = reCreateMusicData
                 stuckPointMusicVc.selectedDataCount = selectedDataCount
+                stuckPointMusicVc.reCreateVideoData = reCreateVideoData
                 stuckPointMusicVc.selectedImageDataCount = selectedImageDataCount
                 stuckPointMusicVc.selectedTotalDuration = photoMaterialVc.selectedTotalDuration
                 stuckPointMusicVc.selectedPhotoData = photoMaterialVc.selectedPhotoData

+ 2 - 0
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointMusicController.swift

@@ -43,6 +43,7 @@ class PQStuckPointMusicController: PQBaseViewController {
     // 当前播放的视频
     var playerItem: AVPlayerItem?
 
+    public var reCreateVideoData: PQReCreateModel? // 再创作数据
     lazy var avPlayer: AVPlayer = {
         let avPlayer = AVPlayer()
         PQNotification.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: avPlayer.currentItem, queue: .main) { [weak self] notify in
@@ -238,6 +239,7 @@ class PQStuckPointMusicController: PQBaseViewController {
             editerVC.selectedImageDataCount = selectedImageDataCount
             editerVC.selectedTotalDuration = selectedTotalDuration
             editerVC.selectedPhotoData = selectedPhotoData
+            editerVC.reCreateVideoData = reCreateVideoData
             editerVC.isReCreate = true
             navigationController?.pushViewController(editerVC, animated: true)
         }