Selaa lähdekoodia

调整合成页UI;
调整视频无音,保留录音

harry 3 vuotta sitten
vanhempi
commit
8a30475b76

+ 8 - 2
BFRecordScreenKit/Classes/BFRecordExport.swift.swift

@@ -15,7 +15,11 @@ import GPUImage
 public class BFRecordExport {
     public var progress : ((Float)->Void)?
     public var exportCompletion : ((Error?, URL?)->Void)?
+    
+    // 视频素材
     public var asset:AVURLAsset?
+    
+    // 录音段
     public var voiceList:[PQVoiceModel]? {
         didSet {
             audioAssets = voiceList?.map({ model in
@@ -105,8 +109,10 @@ public class BFRecordExport {
             // 有
             if let completURL = audioUrl {
                 let inputAsset = AVURLAsset(url: completURL, options: avAssertOptions)
-                (audioMix, composition) = PQVideoEditViewModel.setupAudioMix(originAsset: inputAsset, bgmData: nil, videoStickers: videoStickers)
-                
+//                (audioMix, composition) = PQVideoEditViewModel.setupAudioMix(originAsset: inputAsset, bgmData: nil, videoStickers: videoStickers)
+                //使用原视频无音版
+                (audioMix, composition) = PQVideoEditViewModel.setupAudioMix(originAsset: inputAsset, bgmData: nil, videoStickers: nil)
+
                 if composition != nil {
                     exporter = PQCompositionExporter(asset: composition!, videoComposition: nil, audioMix: audioMix, filters: filter, animationTool: nil, exportURL: outPutMP4URL)
                 }else {

+ 17 - 14
BFRecordScreenKit/Classes/BFRecordScreenController.swift

@@ -270,6 +270,8 @@ public class BFRecordScreenController: BFBaseViewController {
     
     func cancleRecord(){
         recordBtn.setImage(imageInRecordScreenKit(by: "mic1"), for: .normal)
+        recorderManager.cancleRecord()
+        pause()
     }
     @objc func close(){
         pause()
@@ -394,20 +396,21 @@ public class BFRecordScreenController: BFBaseViewController {
             option.isNetworkAccessAllowed = true //允许下载iCloud的图片
             option.resizeMode = .fast
             option.deliveryMode = .highQualityFormat
-            PHImageManager.default().requestImage(for: asset, targetSize: self.view.bounds.size,
-                                                          contentMode: .aspectFit,
-                                                          options: option)
-                    { (image, nil) in
-                         //image就是图片
-                        if image != nil {
-                            let pic = GPUImagePicture(image: image)
-                            let filet = GPUImageFilter()
-                            pic?.addTarget(filet)
-                            filet.addTarget(self.playView)
-                            pic?.processImage()
-                        }
-                        
-                    }
+            PHImageManager.default().requestImage(for: asset,
+                                           targetSize: self.view.bounds.size,
+                                          contentMode: .aspectFit,
+                                              options: option)
+            { (image, nil) in
+                 //image就是图片
+                if image != nil {
+                    let pic = GPUImagePicture(image: image)
+                    let filet = GPUImageFilter()
+                    pic?.addTarget(filet)
+                    filet.addTarget(self.playView)
+                    pic?.processImage()
+                }
+                
+            }
             
 //          使用copy资源到本地的方式
 //            let outFilePath = NSHomeDirectory().appending("/Documents/simple.mp4")

+ 1 - 0
Example/BFRecordScreenKit/PhotoVideoListController.swift

@@ -60,6 +60,7 @@ class PhotoVideoListController: BFBaseViewController {
         nextBtn.frame = CGRect(x: cScreenWidth - 80, y: 10, width: 70, height: 29)
         nextBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#28BE67")
         nextBtn.setTitle("下一步", for: .normal)
+        nextBtn.layer.cornerRadius = 4
         nextBtn.addTarget(self, action: #selector(rightBtnClick(sender:)), for: .touchUpInside)
         bottomV.addSubview(nextBtn)
         

+ 10 - 6
Example/BFRecordScreenKit/VideoExportController.swift

@@ -17,16 +17,17 @@ class VideoExportController: BFBaseViewController{
     var videoAsset : AVURLAsset?
     
     lazy var progressView : UIView = {
-        let v = UIView(frame: CGRect(x: 0, y: cDevice_iPhoneStatusBarHei, width: 0, height: 30))
+        let v = UIView(frame: CGRect(x: 0, y: navHeadImageView!.bottomY, width: 0, height: 10))
         v.backgroundColor = .red
         return v
     }()
     
     lazy var progressL : UILabel = {
-        let la = UILabel(frame: CGRect(x: 0, y: cDevice_iPhoneStatusBarHei, width: cScreenWidth, height: 30))
+        let la = UILabel(frame: CGRect(x: 0, y: navHeadImageView!.bottomY, width: cScreenWidth, height: 10))
         la.textColor = .white
+        la.textAlignment = .center
         la.text = "0%"
-        la.font = UIFont.systemFont(ofSize: 18)
+        la.font = UIFont.systemFont(ofSize: 8)
         return la
     }()
     
@@ -34,8 +35,8 @@ class VideoExportController: BFBaseViewController{
         let export = BFRecordExport()
         
         export.progress = {[weak self] progress in
-            self?.progressView.frame = CGRect(x: 0, y: cDevice_iPhoneStatusBarHei, width: (cScreenWidth) * CGFloat(progress), height: 30)
-            self?.progressL.text = String(format: "%d", Int(progress*100))
+            self?.progressView.frame = CGRect(x: 0, y: self?.navHeadImageView?.bottomY ?? 0, width: (cScreenWidth) * CGFloat(progress), height: 10)
+            self?.progressL.text = String(format: "%d%%", Int(progress*100))
         }
         export.exportCompletion = {[weak self] (error, url) in
             guard let strongSelf = self else {
@@ -68,8 +69,11 @@ class VideoExportController: BFBaseViewController{
 
     override func viewDidLoad() {
         super.viewDidLoad()
+        view.backgroundColor = .black
+        navHeadImageView?.backgroundColor = .black
+        leftButton(image: nil, imageName: nil, tintColor: UIColor.white)
         
-        let backV = UIView(frame: CGRect(x: 10, y: 100, width: cScreenWidth - 20, height: 30))
+        let backV = UIView(frame: CGRect(x: 0, y: navHeadImageView!.bottomY, width: cScreenWidth, height: 10))
         backV.backgroundColor = .gray
         view.addSubview(backV)
         view.addSubview(progressView)