Browse Source

1,各模式的自定义功能不能使用问题 2, 纯图片生成卡点信息调整 3, 播放器的开始和结束时间调整

jsonwang 3 năm trước cách đây
mục cha
commit
e8e7c92851

+ 27 - 23
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointEditerController.swift

@@ -363,6 +363,16 @@ class PQStuckPointEditerController: PQBaseViewController {
                 self?.maxSpeed = maxSpeed
                 self?.minSpeed = minSpeed
                 BFLog(message: "自定义速度maxSpeed is\(maxSpeed) minSpeed \(minSpeed) \(isJumpSpeedModel)")
+               
+                //自定定义的更新一下最后的选择位置
+                if self?.speedSettingView.viewType == 1{
+                    self?.lastSpeedSelectIndex = -1
+                }else if self?.speedSettingView.viewType == 2{
+                    self?.lastJumpSpeedSelectIndex = -1
+                }else{
+                    self?.lastCyclesSelectIndex = Int(maxSpeed - 1)
+                }
+                
                 self?.settingPlayerView()
                 //确认后 选中自定义
                 self?.speedSettingView.selectCustom()
@@ -1069,8 +1079,6 @@ extension PQStuckPointEditerController {
         // 推荐卡点数
         let beginDecoderTime: TimeInterval = Date().timeIntervalSince1970
  
-      
-    
         // 保存滤镜对象数据
         var stickers: Array = Array<PQEditVisionTrackMaterialsModel>.init()
         for section in sections {
@@ -1170,12 +1178,8 @@ extension PQStuckPointEditerController {
 
                                     if totalClipNum  + clipindex + 1 < finallyStuckPoints.count {
                                         deepCopySticker?.speedRate = tempSpeed
-
                                         // 定义临时使用的变量
-                                     
-                                        
                                         // 素材显示的开始时间和结束时间
-    
                                         let tempTimelineIn = Float64(finallyStuckPoints[totalClipNum + clipindex])
                                         let timelineOut = Float64(finallyStuckPoints[totalClipNum + 1 + clipindex])
                                         
@@ -1339,7 +1343,7 @@ extension PQStuckPointEditerController {
             var i: Int = 0
             // L/(n+1)  L -原视觉素材总时长  n-抛留倍数  lastJumpSpeedSelectIndex 是位置 对应的值要+1
             //根据公式计划出的总时长
-            let jumpTime = Float(selectedTotalDuration) / Float(lastJumpSpeedSelectIndex + 2)
+            let jumpTime = Float(selectedTotalDuration) / Float(maxSpeed + 1)
             //只有图片素材时会为0
             if(jumpTime > 0){
                 while useAssestDuration < Float(jumpTime) {
@@ -1511,11 +1515,11 @@ extension PQStuckPointEditerController {
             var pointIndex = stuckPointsTemp.firstIndex(where: { (point) -> Bool in
                 (point == (finallyStuckPoints.last ?? 0).truncatingRemainder(dividingBy: (stuckPointsTemp.last ?? 0)))
             })
-            pointIndex = (pointIndex ?? 0) + 1
+            pointIndex = (pointIndex ?? 0)
 
             var tempStartTime:Float = -1
             var tempEndTime:Float = -1
-            for i in 0 ... selectedImageDataCount - 1 {
+            for i in 0 ... selectedImageDataCount {
                 let a = stuckPointsTemp[(i + Int(pointIndex ?? 0)) % stuckPointsTemp.count]
                 let b = Float((i + Int(pointIndex ?? 0)) / stuckPointsTemp.count) * (stuckPointsTemp.first ?? 0)
                 finallyStuckPoints.append(a + b)
@@ -1534,20 +1538,20 @@ extension PQStuckPointEditerController {
             speedSettingView.viewType = 3
 
             // lastCyclesSelectIndex != -1 已经设置过循环次数 应该是手动设置的值
-            if lastCyclesSelectIndex != -1 {
-                if(lastCyclesSelectIndex != 0){
-                    for i in 0 ... lastCyclesSelectIndex - 1{
-                        var pointIndex = stuckPointsTemp.firstIndex(where: { (point) -> Bool in
-                            (point == (finallyStuckPoints.last ?? 0).truncatingRemainder(dividingBy: (stuckPointsTemp.last ?? 0)))
-                        })
-                        pointIndex = (pointIndex ?? 0) + 1
-                        for i in 0 ... selectedImageDataCount {
-                            let a = stuckPointsTemp[(i + Int(pointIndex ?? 0)) % stuckPointsTemp.count]
-                            let b = Float((i + Int(pointIndex ?? 0)) / stuckPointsTemp.count) * (stuckPointsTemp.first ?? 0)
-                            finallyStuckPoints.append(a + b)
-                        }
+            if lastCyclesSelectIndex != -1 { 
+                //纯图片时 已经默认添加一次循环 所以要用lastCyclesSelectIndex - 1
+                for i in 0 ..< lastCyclesSelectIndex{
+                    var pointIndex = stuckPointsTemp.firstIndex(where: { (point) -> Bool in
+                        (point == (finallyStuckPoints.last ?? 0).truncatingRemainder(dividingBy: (stuckPointsTemp.last ?? 0)))
+                    })
+                    pointIndex = (pointIndex ?? 0) + 1
+                    for i in 0 ... selectedImageDataCount {
+                        let a = stuckPointsTemp[(i + Int(pointIndex ?? 0)) % stuckPointsTemp.count]
+                        let b = Float((i + Int(pointIndex ?? 0)) / stuckPointsTemp.count) * (stuckPointsTemp.first ?? 0)
+                        finallyStuckPoints.append(a + b)
                     }
                 }
+               
              
             } else {
                 lastCyclesSelectIndex = 0
@@ -1557,7 +1561,7 @@ extension PQStuckPointEditerController {
                         (point == (finallyStuckPoints.last ?? 0).truncatingRemainder(dividingBy: (stuckPointsTemp.last ?? 0)))
                     })
                     pointIndex = (pointIndex ?? 0) + 1
-                    for i in 0 ... selectedImageDataCount - 1 {
+                    for i in 0 ... selectedImageDataCount {
                         let a = stuckPointsTemp[(i + Int(pointIndex ?? 0)) % stuckPointsTemp.count]
                         let b = Float((i + Int(pointIndex ?? 0)) / stuckPointsTemp.count) * (stuckPointsTemp.first ?? 0)
                         finallyStuckPoints.append(a + b)
@@ -1599,7 +1603,7 @@ extension PQStuckPointEditerController {
             finallyUserAudioTime = Float(finallyStuckPoints.last ?? 0) + (Float(CMTimeGetSeconds(asset.duration)) - Float(lastSecondPoint))
         }
 
-        playeTimeRange = CMTimeRange(start: CMTime(value: CMTimeValue(Float(stuckPointMusicData?.startTime ?? 0) * Float(BASE_FILTER_TIMESCALE)), timescale: BASE_FILTER_TIMESCALE), end: CMTime(value: CMTimeValue((Float(finallyStuckPoints.last ?? 0)) * Float(BASE_FILTER_TIMESCALE)), timescale: BASE_FILTER_TIMESCALE))
+        playeTimeRange = CMTimeRange(start: CMTime(value: CMTimeValue(Float(finallyStuckPoints.first ?? 0) * Float(BASE_FILTER_TIMESCALE)), timescale: BASE_FILTER_TIMESCALE), end: CMTime(value: CMTimeValue((Float(finallyStuckPoints.last ?? 0)) * Float(BASE_FILTER_TIMESCALE)), timescale: BASE_FILTER_TIMESCALE))
 
         for (index, usePoint) in finallyStuckPoints.enumerated() {
             BFLog(message: "测试人员最后使用的卡点信息 \(index) : \(usePoint)")

+ 1 - 1
BFFramework/Classes/Stuckpoint/View/PQSpeedSettingView.swift

@@ -116,7 +116,7 @@ class PQSpeedSettingView: UIView {
     ///   - setEnable: 设置不可用状态
     func setSelectItem(index:Int,isSettingPlayer:Bool = true,setDisable:Bool = false,isCancle:Bool = false) {
        BFLog(message: "setSelectItem is \(index)")
-        if(index < 0){
+        if(index < 0 && index >= datas.count){
             BFLog(message: "选择位置数据出错\(index)")
             return
         }