Bläddra i källkod

上传中断网提示toast

harry 3 år sedan
förälder
incheckning
17d3108b0b

+ 3 - 3
BFFramework/Classes/PQGPUImage/akfilters/PQMovieInput.swift

@@ -489,8 +489,8 @@ public class PQMovieInput: ImageSource {
 //            BFLog(1, message: "\(mIsExport) movinput 当前时间 is \(currTime) curr当前进度:\(prgressValue)")
             progress?(currTime, duration, prgressValue)
 
-            sharedImageProcessingContext.runOperationSynchronously {
-                self.process()
+            sharedImageProcessingContext.runOperationSynchronously { [weak self] in
+                self?.process()
             }
         }
     }
@@ -623,7 +623,7 @@ public class PQMovieInput: ImageSource {
             conditionLock.signal()
             
         } else {
-            BFLog(message: "MovieOutput total frames appended 要加锁了")
+            BFLog(1, message: "MovieOutput total frames appended 要加锁了")
             readingShouldWait = true
         }
         conditionLock.unlock()

+ 59 - 46
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointPublicController.swift

@@ -12,6 +12,7 @@ import UIKit
 import WechatOpenSDK
 import Kingfisher
 import BFCommonKit
+import Alamofire
 
 class PQStuckPointPublicController: PQBaseViewController {
     private var isShared: Bool = false // 是否在分享
@@ -644,6 +645,8 @@ class PQStuckPointPublicController: PQBaseViewController {
 
         // 取推荐标题
         getTitles()
+        
+        networkStausListen()
       
     }
 
@@ -704,8 +707,19 @@ class PQStuckPointPublicController: PQBaseViewController {
         // 点击上报:返回按钮
         PQEventTrackViewModel.baseReportUpload(businessType: .bt_buttonClick, objectType: .ot_click_back, pageSource: .sp_stuck_publishSyncedUp, extParams: nil, remindmsg: "卡点视频数据上报-(点击上报:返回按钮)")
     }
+    // MARK: - 网络监控
+    func networkStausListen(){
+        manager?.startListening(onUpdatePerforming: { status in
+            if status == .reachable(.cellular) || status == .reachable(.ethernetOrWiFi) {
+                cHiddenHUB(superView: nil)
+            } else {
+                cShowHUB(superView: nil, msg: "当前网络不佳,请尝试重新连接")
+            }
+        })
+    }
 }
 
+
 // MARK: - 导出/上传/下载及其他方法
 
 /// 导出/上传/下载及其他方法
@@ -1813,24 +1827,24 @@ extension PQStuckPointPublicController {
             avatarSticker.timelineOut = bgMovieInfo.timelineOut
             avatarSticker.canvasFillType = stickerContentMode.aspectFitStr.rawValue
 
-         //头像绘制大小\位置
-         var avatarSize:Float = 0.0
-         var avatarTop:Float = 0.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)
+                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)
             avatarPostion.x = ((self?.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0) - Int(avatarSize)) / 2
-         avatarPostion.y = Int(avatarTop)
+            avatarPostion.y = Int(avatarTop)
             avatarSticker.materialPosition = avatarPostion
             
             //3,用户名素材
@@ -1841,48 +1855,47 @@ extension PQStuckPointPublicController {
             
          
             //用户名绘制用到的参数
-         var userNameTop:Float = 0.0
-         var userNameFontSize:Float = 0.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
+                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 = Int(userNameFontSize)
-         subtitleInfo.text = BFLoginUserInfo.shared.nickName
-         userNameSticker.subtitleInfo = subtitleInfo
-
-         let userNamePostion:PQEditMaterialPositionModel = PQEditMaterialPositionModel.init()
-         userNamePostion.width = Int(userNameFontSize ) * 10
-         userNamePostion.height = Int(userNameFontSize ) * 3
+            }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 = Int(userNameFontSize)
+            subtitleInfo.text = BFLoginUserInfo.shared.nickName
+            userNameSticker.subtitleInfo = subtitleInfo
+
+            let userNamePostion:PQEditMaterialPositionModel = PQEditMaterialPositionModel.init()
+            userNamePostion.width = Int(userNameFontSize ) * 10
+            userNamePostion.height = Int(userNameFontSize ) * 3
             userNamePostion.x = ((self?.editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0) -  userNamePostion.width) / 2
-         userNamePostion.y = Int(userNameTop)
-         userNameSticker.materialPosition = userNamePostion
+            userNamePostion.y = Int(userNameTop)
+            userNameSticker.materialPosition = userNamePostion
 
-         //4,音频
-         let soundResPath = currentBundlePath()!.path(forResource: "endMovieSound", ofType: "mp3")
-         let soundAsset = AVURLAsset(url:  URL(fileURLWithPath: soundResPath ?? ""), options: nil)
+            //4,音频
+            let soundResPath = currentBundlePath()!.path(forResource: "endMovieSound", ofType: "mp3")
+            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)) != nil) {
 
-            self?.endMovieExporter.start(playeTimeRange: CMTimeRange.init(start: CMTime.zero, duration: CMTimeMakeWithSeconds(Float64(bgMovieInfo.out), preferredTimescale: BASE_FILTER_TIMESCALE)))
-            BFLog(message: "开始导出")
-         }
+                self?.endMovieExporter.start(playeTimeRange: CMTimeRange.init(start: CMTime.zero, duration: CMTimeMakeWithSeconds(Float64(bgMovieInfo.out), preferredTimescale: BASE_FILTER_TIMESCALE)))
+                BFLog(message: "开始导出")
+            }
             self?.endMovieExporter.progressClosure = { _, _, progress in
-            BFLog(message: "片尾合成进度 \(progress) ")
-          
-         }
-         
+                BFLog(message: "片尾合成进度 \(progress) ")
+            }
+            
             self?.endMovieExporter.completion = { [weak self] url in
-             BFLog(message: "片尾的视频导出完成: \(String(describing: url)) 生成视频时长为:\(CMTimeGetSeconds(AVAsset(url: url ?? URL(string: "https://media.w3.org/2010/05/sintel/trailer.mp4")!).duration))")
-
+                BFLog(message: "片尾的视频导出完成: \(String(describing: url)) 生成视频时长为:\(CMTimeGetSeconds(AVAsset(url: url ?? URL(string: "https://media.w3.org/2010/05/sintel/trailer.mp4")!).duration))")
+                
                 // 导出完成后取消导出
                 if self?.endMovieExporter != nil {
                     self?.endMovieExporter.cancel()