jsonwang 3 лет назад
Родитель
Сommit
0e80a3cd88

+ 29 - 10
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointPublicController.swift

@@ -1730,11 +1730,21 @@ extension PQStuckPointPublicController {
                    avatarSticker.locationPath = avatarFilePath.replacingOccurrences(of: documensDirectory, with: "")
                    avatarSticker.timelineIn = bgMovieInfo.timelineIn
                    avatarSticker.timelineOut = bgMovieInfo.timelineOut
+                   avatarSticker.canvasFillType = stickerContentMode.aspectFitStr.rawValue
  
-                //头像绘制大小
-                let avatarSize =  min(360,300 * ((self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0) / (self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0)))
-                let avatarTop = min(430,130 * ((self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0) / (self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0)))
- 
+                //头像绘制大小\位置
+                var avatarSize:Float = 0.0
+                var avatarTop:Float = 0.0
+                if((self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0) > (self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0)){
+                    //竖屏
+                    avatarSize = Float(self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0) * 360.0 / 1080.0
+                    avatarTop = 430
+                }else{
+                    //横屏屏
+                    avatarSize = Float(self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0) * 300.0 / 1080.0
+                    avatarTop = Float(self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0) * 130.0 / 1080.0
+                }
+         
                 let avatarPostion:PQEditMaterialPositionModel = PQEditMaterialPositionModel.init()
                 avatarPostion.width = Int(avatarSize)
                 avatarPostion.height = Int(avatarSize)
@@ -1750,11 +1760,20 @@ extension PQStuckPointPublicController {
                    
                 
                    //用户名绘制用到的参数
-                   let userNameTop = min(870,480 * ((self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0) / (self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0)))
-                   let userNameFontSize = min(100,70 * ((self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0) / (self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0)))
- 
+                var userNameTop:Float = 0.0
+                var userNameFontSize:Float = 0.0
+                if((self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0) > (self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0)){
+                    //竖屏
+                    userNameTop = 870
+                    userNameFontSize = Float(self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0) * 100.0 / 1080.0
+                }else{
+                    //横屏
+                    userNameTop = Float(self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0) * 480 / 1080.0
+                    userNameFontSize = Float(self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0) * 70.0 / 1080.0
+                }
+             
                    let subtitleInfo:PQEditSubtitleInfoModel = PQEditSubtitleInfoModel.init()
-                   subtitleInfo.fontSize = userNameFontSize
+                   subtitleInfo.fontSize = Int(userNameFontSize)
                    subtitleInfo.text = BFLoginUserInfo.shared.nickName
                    userNameSticker.subtitleInfo = subtitleInfo
                    
@@ -1762,7 +1781,7 @@ extension PQStuckPointPublicController {
                    userNamePostion.width = Int(userNameFontSize ) * 10
                    userNamePostion.height = Int(userNameFontSize ) * 3
                    userNamePostion.x = ((self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0) -  userNamePostion.width) / 2
-                   userNamePostion.y = userNameTop
+                   userNamePostion.y = Int(userNameTop)
                    userNameSticker.materialPosition = userNamePostion
 
                    //4,音频
@@ -1770,7 +1789,7 @@ extension PQStuckPointPublicController {
                    let soundAsset = AVURLAsset(url:  URL(fileURLWithPath: soundResPath ?? ""), options: nil)
                    self.endMovieExporter = PQCompositionExporter(asset: soundAsset, videoComposition: nil, audioMix: nil, filters: nil, stickers: [bgMovieInfo,avatarSticker,userNameSticker], animationTool: nil, exportURL: outPutMP4URL)
                    self.endMovieExporter.isEndMovie = true
-                   if self.endMovieExporter.prepare(videoSize: CGSize(width: self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0, height: self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0), videoAverageBitRate: orgeBitRate) ?? false {
+                   if self.endMovieExporter.prepare(videoSize: CGSize(width: self.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0, height: self.editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0), videoAverageBitRate: orgeBitRate) {
               
                        self.endMovieExporter.start(playeTimeRange: CMTimeRange.init(start: CMTime.zero, duration: CMTimeMakeWithSeconds(Float64(bgMovieInfo.out), preferredTimescale: BASE_FILTER_TIMESCALE)))
                        BFLog(message: "开始导出")