|
@@ -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: "开始导出")
|