Browse Source

Merge branch 'feature/dev_Chris' into develop

Chris 5 years ago
parent
commit
06fa69d603
21 changed files with 358 additions and 76 deletions
  1. 15 3
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  2. 90 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakePhoto/PublishConfirmPhotoController.swift
  3. 120 12
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakePhoto/PublishTakePhotoController.swift
  4. 6 42
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishVideoRecorderController.swift
  5. 13 19
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishVideoView.swift
  6. 4 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishViewController.swift
  7. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_pause.imageset/Contents.json
  8. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_pause.imageset/video_btn_pause@2x.png
  9. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_pause.imageset/video_btn_pause@3x.png
  10. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight.imageset/Contents.json
  11. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight.imageset/video_ico_flashlight@2x.png
  12. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight.imageset/video_ico_flashlight@3x.png
  13. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_auto.imageset/Contents.json
  14. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_auto.imageset/video_ico_flashlight_auto@2x.png
  15. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_auto.imageset/video_ico_flashlight_auto@3x.png
  16. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_close.imageset/Contents.json
  17. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_close.imageset/video_ico_flashlight_close@2x.png
  18. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_close.imageset/video_ico_flashlight_close@3x.png
  19. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_overturn.imageset/Contents.json
  20. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_overturn.imageset/video_ico_overturn@2x.png
  21. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_overturn.imageset/video_ico_overturn@3x.png

+ 15 - 3
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -488,6 +488,7 @@
 		BDAA40FB228E9CC300CF841D /* OrderApplyRefundNoteInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAA40FA228E9CC300CF841D /* OrderApplyRefundNoteInfoCell.swift */; };
 		BDAA40FD228E9CD600CF841D /* OrderApplyRefundPhoneCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAA40FC228E9CD600CF841D /* OrderApplyRefundPhoneCell.swift */; };
 		BDAA40FF228EA37900CF841D /* OrderApplyRefundPhotoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAA40FE228EA37900CF841D /* OrderApplyRefundPhotoCell.swift */; };
+		BDACE21122BB5AA300109AAD /* PublishConfirmPhotoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDACE21022BB5AA300109AAD /* PublishConfirmPhotoController.swift */; };
 		BDAF83A222B330540004BCC3 /* RecommendSimilarCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAF83A122B330540004BCC3 /* RecommendSimilarCell.swift */; };
 		BDAF83A622B334D90004BCC3 /* SearchContentListCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAF83A522B334D90004BCC3 /* SearchContentListCollectionCell.swift */; };
 		BDAF83A822B343C50004BCC3 /* RecommendBottomCommentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAF83A722B343C50004BCC3 /* RecommendBottomCommentView.swift */; };
@@ -1048,6 +1049,7 @@
 		BDAA40FA228E9CC300CF841D /* OrderApplyRefundNoteInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderApplyRefundNoteInfoCell.swift; sourceTree = "<group>"; };
 		BDAA40FC228E9CD600CF841D /* OrderApplyRefundPhoneCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderApplyRefundPhoneCell.swift; sourceTree = "<group>"; };
 		BDAA40FE228EA37900CF841D /* OrderApplyRefundPhotoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderApplyRefundPhotoCell.swift; sourceTree = "<group>"; };
+		BDACE21022BB5AA300109AAD /* PublishConfirmPhotoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublishConfirmPhotoController.swift; sourceTree = "<group>"; };
 		BDAF83A122B330540004BCC3 /* RecommendSimilarCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecommendSimilarCell.swift; sourceTree = "<group>"; };
 		BDAF83A522B334D90004BCC3 /* SearchContentListCollectionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchContentListCollectionCell.swift; sourceTree = "<group>"; };
 		BDAF83A722B343C50004BCC3 /* RecommendBottomCommentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecommendBottomCommentView.swift; sourceTree = "<group>"; };
@@ -3781,10 +3783,9 @@
 			isa = PBXGroup;
 			children = (
 				BD929CCD22B904A30098C139 /* PublishViewController.swift */,
-				BD929CD322B906C10098C139 /* PublishVideoRecorderController.swift */,
-				BD1EF11622BA637D0052D87A /* PublishVideoView.swift */,
-				BDFE396C22BB224E0074F203 /* PublishTakePhoto */,
 				BD12B67222B4E99800AEB10B /* PublishMediaPicker */,
+				BDACE21222BB683000109AAD /* PublishTakeVideo */,
+				BDFE396C22BB224E0074F203 /* PublishTakePhoto */,
 				BD13B69F22B9CE8D008BB323 /* PublishEditController */,
 				BD13B6CF22BA03BB008BB323 /* PublishAddTopic */,
 				BD13B6CB22BA03BB008BB323 /* PublishAddAddress */,
@@ -4163,6 +4164,15 @@
 			path = AdressCell;
 			sourceTree = "<group>";
 		};
+		BDACE21222BB683000109AAD /* PublishTakeVideo */ = {
+			isa = PBXGroup;
+			children = (
+				BD929CD322B906C10098C139 /* PublishVideoRecorderController.swift */,
+				BD1EF11622BA637D0052D87A /* PublishVideoView.swift */,
+			);
+			path = PublishTakeVideo;
+			sourceTree = "<group>";
+		};
 		BDAF83AE22B3B6150004BCC3 /* 全部评论的Cell */ = {
 			isa = PBXGroup;
 			children = (
@@ -4274,6 +4284,7 @@
 			isa = PBXGroup;
 			children = (
 				BD929CD522B906D10098C139 /* PublishTakePhotoController.swift */,
+				BDACE21022BB5AA300109AAD /* PublishConfirmPhotoController.swift */,
 			);
 			path = PublishTakePhoto;
 			sourceTree = "<group>";
@@ -4575,6 +4586,7 @@
 				A7931E0D22AF874600297D0A /* GenderSelectionViewController.swift in Sources */,
 				A7C0FDF522B65FE000BC1E86 /* FeaturedTopicsCollectionViewCell.swift in Sources */,
 				A7F2D6D022B1119A0093000B /* CommunityEnum.swift in Sources */,
+				BDACE21122BB5AA300109AAD /* PublishConfirmPhotoController.swift in Sources */,
 				A7BB6857226965C100AB07A2 /* SelfRecommendationHeaderCollectionReusableView.swift in Sources */,
 				BDE3045F228554CA001D050F /* ProductCartAmountModel.swift in Sources */,
 				A7BB68672269B1DD00AB07A2 /* AddressPOIViewController.swift in Sources */,

+ 90 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakePhoto/PublishConfirmPhotoController.swift

@@ -0,0 +1,90 @@
+//
+//  PublishConfirmPhotoController.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/6/20.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+import RxSwift
+import Photos
+
+class PublishConfirmPhotoController: BaseViewController {
+    
+    var photoImg: UIImage? {
+        didSet {
+            photoImageView.image = self.photoImg
+        }
+    }
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+    }
+    
+    override func setupViews() {
+        navigationBar.isHidden = true
+        
+        view.addSubview(photoImageView)
+        view.addSubview(retakeBtn)
+        view.addSubview(usePhotoBtn)
+    }
+    
+    override func setupLayouts() {        
+        photoImageView.snp.makeConstraints { (make) in
+            make.top.left.right.equalToSuperview()
+            make.bottom.equalTo(-kSafeTabBarHeight)
+        }
+        retakeBtn.snp.makeConstraints { (make) in
+            make.left.equalTo(photoImageView.snp_left)
+            make.bottom.equalTo(photoImageView.snp_bottom)
+            make.width.equalTo(125)
+            make.height.equalTo(48)
+        }
+        usePhotoBtn.snp.makeConstraints { (make) in
+            make.right.equalTo(photoImageView.snp_right)
+            make.bottom.equalTo(photoImageView.snp_bottom)
+            make.width.equalTo(125)
+            make.height.equalTo(48)
+        }
+    }
+    
+    private lazy var photoImageView: UIImageView = {
+        let photoImageView = UIImageView()
+        return photoImageView
+    }()
+    
+    private lazy var retakeBtn: UIButton = {
+        let retakeBtn = UIButton(type: UIButton.ButtonType.custom)
+        retakeBtn.setTitle("重拍", for: .normal)
+        retakeBtn.setTitleColor(kffffffColor, for: .normal)
+        retakeBtn.titleLabel?.font = kMediumFont15
+        retakeBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
+            self?.dismiss(animated: true, completion: nil)
+        }).disposed(by: disposeBag)
+        return retakeBtn
+    }()
+    
+    private lazy var usePhotoBtn: UIButton = {
+        let usePhotoBtn = UIButton(type: UIButton.ButtonType.custom)
+        usePhotoBtn.setTitle("使用照片", for: .normal)
+        usePhotoBtn.setTitleColor(kffffffColor, for: .normal)
+        usePhotoBtn.titleLabel?.font = kMediumFont15
+        usePhotoBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
+            PHPhotoLibrary.shared().performChanges({
+                
+                _ = PHAssetChangeRequest.creationRequestForAsset(from: self!.photoImg!)}, completionHandler: { (success, error) in
+                    if success != true{
+                        SwiftProgressHUD.shared().showText("保存失败")
+                        return
+                    }
+                    print("保存成功")
+            })
+            
+        }).disposed(by: disposeBag)
+        return usePhotoBtn
+    }()
+    
+}

+ 120 - 12
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakePhoto/PublishTakePhotoController.swift

@@ -11,39 +11,147 @@ import RxSwift
 import JXSegmentedView
 import AliyunVideoSDKPro
 
+enum FlashType : Int {
+    case close = 0
+    case open = 1
+    case auto = 2
+}
+
 class PublishTakePhotoController: BaseViewController {
     
+    typealias DismissClosure = () -> Void
+    var dismissClosure: DismissClosure?
+    
+    var curFlashType : FlashType! = .close
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         setupViews()
+        setupLayouts()
     }
     
-    override func viewWillAppear(_ animated: Bool) {
-        navigationBar.isHidden = true
-    }
-    
-    override func viewWillDisappear(_ animated: Bool) {
-        navigationBar.isHidden = false
+    deinit {
+        // 控制器销毁时,销毁recorder
         recorder.destroy()
-        
     }
+    
     override func setupViews() {
+        navigationBar.isHidden = true
         
+        view.addSubview(backButton)
+        view.addSubview(reverseButton)
+        view.addSubview(flashButton)
+        view.addSubview(photoButton)
         
     }
     
-    private lazy var recorder: AliyunIRecorder = {
+    override func setupLayouts() {
+        backButton.snp.makeConstraints { (make) in
+            make.top.equalTo(23)
+            make.left.equalTo(5)
+            make.width.equalTo(40)
+            make.height.equalTo(40)
+        }
         
+        reverseButton.snp.makeConstraints { (make) in
+            make.top.equalTo(86)
+            make.right.equalTo(-12)
+            make.width.equalTo(40)
+            make.height.equalTo(44)
+        }
+        reverseButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.top, imageTitleSpace: 6)
         
-        let recorder = AliyunIRecorder.init(delegate: self as? AliyunIRecorderDelegate, videoSize: CGSize(width: 720, height: 1280))
+        flashButton.snp.makeConstraints { (make) in
+            make.top.equalTo(reverseButton.snp_bottom).offset(20)
+            make.centerX.equalTo(reverseButton.snp_centerX)
+            make.width.equalTo(40)
+            make.height.equalTo(46)
+        }
+        flashButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.top, imageTitleSpace: 4)
         
-        // 预览视图,必须设置
+        photoButton.snp.makeConstraints { (make) in
+            make.bottom.equalTo(-kSafeTabBarHeight-68)
+            make.centerX.equalToSuperview()
+            make.size.equalTo(79)
+        }
+    }
+    
+    private lazy var recorder: AliyunIRecorder = {
+        let recorder = AliyunIRecorder.init(delegate: self as? AliyunIRecorderDelegate, videoSize: CGSize(width: 720, height: 1280))
         recorder?.preview = self.view;
-        
-        
         return recorder!
     }()
     
+    private lazy var backButton: UIButton = {
+        let backButton = UIButton(type: UIButton.ButtonType.custom)
+        backButton.setImage(kImage(name: "navbar_back_white"), for: UIControl.State.normal)
+        backButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            if let dismissClosure = self?.dismissClosure {
+                dismissClosure()
+            }            
+        }).disposed(by: disposeBag)
+        return backButton
+    }()
+    
+    private lazy var reverseButton: UIButton = {
+        let reverseButton = UIButton(type: UIButton.ButtonType.custom)
+        reverseButton.setImage(kImage(name: "video_ico_overturn"), for: UIControl.State.normal)
+        reverseButton.setTitle("翻转", for: UIControl.State.normal)
+        reverseButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        reverseButton.titleLabel?.font = kRegularFont12
+        reverseButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            self?.recorder.switchCameraPosition()
+            
+        }).disposed(by: disposeBag)
+        return reverseButton
+    }()
+    
+    private lazy var flashButton: UIButton = {
+        let flashButton = UIButton(type: UIButton.ButtonType.custom)
+        switch curFlashType {
+        case .open?:
+            flashButton.setImage(kImage(name: "video_ico_flashlight"), for: UIControl.State.normal)
+        case .auto?:
+            flashButton.setImage(kImage(name: "video_ico_flashlight_auto"), for: UIControl.State.normal)
+        default:
+            flashButton.setImage(kImage(name: "video_ico_flashlight_close"), for: UIControl.State.normal)
+        }
+        flashButton.setTitle("闪光灯", for: UIControl.State.normal)
+        flashButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        flashButton.titleLabel?.font = kRegularFont12
+        flashButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            switch self?.curFlashType {
+            case .open?:
+                self?.curFlashType = FlashType.auto
+                flashButton.setImage(kImage(name: "video_ico_flashlight_auto"), for: UIControl.State.normal)
+                self?.recorder.switchTorch(with: AliyunIRecorderTorchMode.auto)
+            case .auto?:
+                self?.curFlashType = FlashType.close
+                flashButton.setImage(kImage(name: "video_ico_flashlight_close"), for: UIControl.State.normal)
+                self?.recorder.switchTorch(with: AliyunIRecorderTorchMode.off)
+            default:
+                self?.curFlashType = FlashType.open
+                flashButton.setImage(kImage(name: "video_ico_flashlight"), for: UIControl.State.normal)
+                self?.recorder.switchTorch(with: AliyunIRecorderTorchMode.on)
+            }
+            
+        }).disposed(by: disposeBag)
+        return flashButton
+    }()
+    
+    private lazy var photoButton: UIButton = {
+        let photoButton = UIButton(type: UIButton.ButtonType.custom)
+        photoButton.setImage(kImage(name: "video_btn_shoot"), for: UIControl.State.normal)
+        photoButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            self?.recorder.takePhoto({ (image, rawImage) in
+                let confirmVc = PublishConfirmPhotoController()
+                confirmVc.photoImg = image
+                self?.present(confirmVc, animated: true, completion: nil)
+            })
+        }).disposed(by: disposeBag)
+        return photoButton
+    }()
+    
 }
 
 extension PublishTakePhotoController : JXSegmentedListContainerViewListDelegate {

+ 6 - 42
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishVideoRecorderController.swift

@@ -17,57 +17,20 @@ class PublishVideoRecorderController: BaseViewController {
         
         setupViews()
         setupLayouts()
-        
-        
-        
-//        recorder.takePhoto(<#T##handler: ((UIImage?, UIImage?) -> Void)!##((UIImage?, UIImage?) -> Void)!##(UIImage?, UIImage?) -> Void#>)
-//        recorder.startRecording()
-        
-        // 开始预览,cameraPosition 摄像头位置(前置、后置)
-        //        recorder.startPreview(withPositon: AliyunIRecorderCameraPosition.back)
-    }
-    
-    override func viewWillAppear(_ animated: Bool) {
-        navigationBar.isHidden = true
-    }
-    
-    override func viewWillDisappear(_ animated: Bool) {
-        navigationBar.isHidden = false
-        recorder.destroy()
     }
     
     override func setupViews() {
-        view.addSubview(prePriceLabel)
-        view.addSubview(tstView)
+        navigationBar.isHidden = true
         
+        view.addSubview(tstView)
     }
     
     override func setupLayouts() {
-        
-        prePriceLabel.snp.makeConstraints { (make) in
-            make.bottom.equalTo(-40)
-            make.centerX.equalToSuperview()
-            make.size.equalTo(80)
-        }
         tstView.snp.makeConstraints { (make) in
-            make.bottom.equalTo(-80)
-            make.centerX.equalToSuperview()
-            make.width.equalTo(320)
-            make.height.equalTo(100)
+            make.edges.equalToSuperview()
         }
-        
     }
     
-    private lazy var prePriceLabel: UILabel = {
-        let prePriceLabel = UILabel()
-        prePriceLabel.text = "合计"
-        prePriceLabel.textColor = k333333Color
-        prePriceLabel.font = kScaleRegularFont16
-        prePriceLabel.backgroundColor = UIColor.yellow
-        return prePriceLabel
-    }()
-    
-    
     private lazy var recorder: AliyunIRecorder = {
         //清除之前生成的录制路径
         let recordDir: String = AliyunPathManager.createRecrodDir()
@@ -81,7 +44,7 @@ class PublishVideoRecorderController: BaseViewController {
         let recorder = AliyunIRecorder.init(delegate: self as? AliyunIRecorderDelegate, videoSize: CGSize(width: 720, height: 1280))
         
         // 预览视图,必须设置
-        recorder?.preview = self.view;
+        recorder?.preview = tstView.previewView
         
         // 摄像头角度
         recorder?.cameraRotate = 270;
@@ -121,10 +84,11 @@ class PublishVideoRecorderController: BaseViewController {
     
     lazy var tstView: PublishVideoView = {
         let tstView = PublishVideoView()
-        tstView.frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight-40)
+//        tstView.frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight)
         return tstView
     }()
     
+    
     //    func recordButtonTouchesBegin {
     //    // 点击录制button开始录制
     //    [self.recorder startRecording];

+ 13 - 19
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishVideoView.swift

@@ -26,26 +26,7 @@ class PublishVideoView: BaseView {
         }
     }
     
-    var tPrice: Int? {
-        didSet {
-            priceLabel.text = priceConversion(price: tPrice ?? 0)
-        }
-    }
     
-    var tNumber: Int? {
-        didSet {
-            accountBtn.setTitle("结算(\(tNumber ?? 0))", for: UIControl.State.normal)
-            if tNumber == 0 {
-                accountBtn.backgroundColor = ke6e6e6Color
-                accountBtn.setTitleColor(k333333Color, for: UIControl.State.normal)
-                accountBtn.isEnabled = false
-            } else {
-                accountBtn.setTitleColor(kffffffColor, for: UIControl.State.normal)
-                accountBtn.backgroundColor = kFFA42FColor
-                accountBtn.isEnabled = true
-            }
-        }
-    }
     
     override func setupViews() {
         self.backgroundColor = kffffffColor
@@ -53,6 +34,9 @@ class PublishVideoView: BaseView {
         addSubview(accountBtn)
         addSubview(priceLabel)
         addSubview(prePriceLabel)
+        addSubview(previewView)
+        
+        insertSubview(previewView, at: 0)
     }
     
     override func setupLayouts() {
@@ -82,6 +66,10 @@ class PublishVideoView: BaseView {
             make.right.equalTo(priceLabel.snp_left).offset(-1)
         }
         
+        previewView.snp.makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+        
     }
     
     private lazy var allSelectBtn: UIButton = {
@@ -131,4 +119,10 @@ class PublishVideoView: BaseView {
         return prePriceLabel
     }()
     
+    // 预览View
+    lazy var previewView: UIView = {
+        let previewView = UIView()
+        return previewView
+    }()
+    
 }

+ 4 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishViewController.swift

@@ -173,6 +173,10 @@ extension PublishViewController :JXSegmentedListContainerViewDataSource {
             return videoVc        
         default:
             let photoVc = PublishTakePhotoController()
+            photoVc.dismissClosure = {
+                [weak self] in
+                self?.dismiss(animated: true, completion: nil)
+            }
             return photoVc
         }
     }

+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_pause.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "video_btn_pause@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "video_btn_pause@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_pause.imageset/video_btn_pause@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_pause.imageset/video_btn_pause@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "video_ico_flashlight@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "video_ico_flashlight@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight.imageset/video_ico_flashlight@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight.imageset/video_ico_flashlight@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_auto.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "video_ico_flashlight_auto@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "video_ico_flashlight_auto@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_auto.imageset/video_ico_flashlight_auto@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_auto.imageset/video_ico_flashlight_auto@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_close.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "video_ico_flashlight_close@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "video_ico_flashlight_close@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_close.imageset/video_ico_flashlight_close@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_flashlight_close.imageset/video_ico_flashlight_close@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_overturn.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "video_ico_overturn@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "video_ico_overturn@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_overturn.imageset/video_ico_overturn@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_overturn.imageset/video_ico_overturn@3x.png