Browse Source

视频凭证接口 && 跳转到发布视频

Chris 5 years ago
parent
commit
abca0ff933

+ 4 - 0
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -415,6 +415,7 @@
 		BD0808EC22C5BA3100D12E6A /* AliyunCompositionInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0808EA22C5BA3000D12E6A /* AliyunCompositionInfo.m */; };
 		BD09C84122955B480080D5A4 /* PopTopTriangleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD09C84022955B480080D5A4 /* PopTopTriangleView.swift */; };
 		BD0E678522A4C23B00B980BA /* ShoppingCartOrderPayFreightCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD0E678422A4C23B00B980BA /* ShoppingCartOrderPayFreightCell.swift */; };
+		BD0F61F822CAFC8B004650FB /* CommunityVideoAuthModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD0F61F722CAFC8B004650FB /* CommunityVideoAuthModel.swift */; };
 		BD0FAA3722C465B900DDFB37 /* AliyunEditViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0FAA3522C465B900DDFB37 /* AliyunEditViewController.m */; };
 		BD0FAA4122C465F500DDFB37 /* AliyunEditButtonsView.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0FAA3A22C465F500DDFB37 /* AliyunEditButtonsView.m */; };
 		BD0FAA4222C465F500DDFB37 /* AliyunEffectTimeFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0FAA3C22C465F500DDFB37 /* AliyunEffectTimeFilterView.m */; };
@@ -1084,6 +1085,7 @@
 		BD0808EB22C5BA3000D12E6A /* AliyunCompositionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AliyunCompositionInfo.h; sourceTree = "<group>"; };
 		BD09C84022955B480080D5A4 /* PopTopTriangleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PopTopTriangleView.swift; sourceTree = "<group>"; };
 		BD0E678422A4C23B00B980BA /* ShoppingCartOrderPayFreightCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartOrderPayFreightCell.swift; sourceTree = "<group>"; };
+		BD0F61F722CAFC8B004650FB /* CommunityVideoAuthModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommunityVideoAuthModel.swift; sourceTree = "<group>"; };
 		BD0FAA3522C465B900DDFB37 /* AliyunEditViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AliyunEditViewController.m; sourceTree = "<group>"; };
 		BD0FAA3622C465B900DDFB37 /* AliyunEditViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AliyunEditViewController.h; sourceTree = "<group>"; };
 		BD0FAA3922C465F500DDFB37 /* AliyunEditButtonsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AliyunEditButtonsView.h; sourceTree = "<group>"; };
@@ -3841,6 +3843,7 @@
 				A71CAB3822C9DF0600D908A8 /* CommunityTopicDetailModel.swift */,
 				A71CAB3A22C9F21100D908A8 /* CommunityMemberFollowTopicListModel.swift */,
 				BD981A8E22C9FEEF0043D951 /* CommunityPublishModel.swift */,
+				BD0F61F722CAFC8B004650FB /* CommunityVideoAuthModel.swift */,
 			);
 			path = CommunityModel;
 			sourceTree = "<group>";
@@ -5897,6 +5900,7 @@
 				A7274C5F228EE636000E3A07 /* LBXScanWrapper.swift in Sources */,
 				A7CC752F2271A1F2003C4F38 /* SetPasswordView.swift in Sources */,
 				A7A98E09227EB8DD005306E9 /* CategoryView.swift in Sources */,
+				BD0F61F822CAFC8B004650FB /* CommunityVideoAuthModel.swift in Sources */,
 				A7D07CC122B73F0200186014 /* OtherPersonalCenterViewController.swift in Sources */,
 				A7CC75362271AC14003C4F38 /* AddressManagerView.swift in Sources */,
 				A7146349228EFCE20066099B /* ORSKUDataFilter.m in Sources */,

+ 1 - 1
RainbowPlanet/RainbowPlanet/Model/CommunityModel/CommunityPublishModel.swift

@@ -4,7 +4,7 @@
 //
 //  Created by Christopher on 2019/7/1.
 //  Copyright © 2019 RainbowPlanet. All rights reserved.
-//
+//  发布动态のModel
 
 import Foundation
 import ObjectMapper

+ 35 - 0
RainbowPlanet/RainbowPlanet/Model/CommunityModel/CommunityVideoAuthModel.swift

@@ -0,0 +1,35 @@
+//
+//  CommunityVideoAuthModel.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/7/2.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  获取视频上传地址和凭证のModel
+
+import Foundation
+import ObjectMapper
+
+
+class CommunityVideoAuthModel : NSObject, Mappable{
+    
+    var requestId : String?
+    var uploadAddress : String?
+    var uploadAuth : String?
+    var videoId : String?
+    
+    
+    class func newInstance(map: Map) -> Mappable?{
+        return CommunityVideoAuthModel()
+    }
+    required init?(map: Map){}
+    private override init(){}
+    
+    func mapping(map: Map)
+    {
+        requestId <- map["RequestId"]
+        uploadAddress <- map["UploadAddress"]
+        uploadAuth <- map["UploadAuth"]
+        videoId <- map["VideoId"]
+        
+    }    
+}

+ 5 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoFile/VideoCoverPick/Controller/AliyunCoverPickViewController.m

@@ -11,6 +11,7 @@
 #import "AliyunCoverPickView.h"
 #import "AliyunPublishTopView.h"
 #import "AlivcMacro.h"
+#import "RainbowPlanet-Swift.h"
 
 @interface AliyunCoverPickViewController () <AliyunPublishTopViewDelegate,
                                              AliyunCoverPickViewDelegate>
@@ -84,6 +85,10 @@
     // FIXME: 完成封面选择,去发布
     NSLog(@"完成封面选择,去发布");
     
+    PublishEditController *pubVc = [[PublishEditController alloc] init];
+    pubVc.mediaType = PublishMediaTypeVideo;
+    [self.navigationController pushViewController:pubVc animated:YES];
+    
 //    _finishHandler(_coverView.image);
 //    [self.navigationController popViewControllerAnimated:YES];
 }

+ 13 - 6
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishEditController/Controller/PublishEditController.swift

@@ -11,14 +11,15 @@ import RxSwift
 import SwiftyJSON
 import Photos
 
-enum PublishMediaType {
-    case image
-    case video
+@objc(PublishMediaType)
+enum PublishMediaType: Int {
+    case image = 0
+    case video = 1
 }
 
 class PublishEditController: BaseViewController {
     
-    var mediaType: PublishMediaType = .image
+    @objc var mediaType: PublishMediaType = .image
     
     var imgCount: Int = 0
     var majorImageUrl: String?
@@ -51,7 +52,14 @@ class PublishEditController: BaseViewController {
         rightButton.isEnabled = false
         rightButton.backgroundColor = kd8d8d8Color
         
-        uploadAllImages(totalTimes: 0)
+        if mediaType == .image {
+            subLabel.text = "图片正在上传中(0/\(imageArr?.count ?? 0))..."
+            uploadAllImages(totalTimes: 0)
+        } else {
+            subLabel.text = "视频正在上传中(0/1)..."
+            print("----上传视频")
+        }
+        
         
 //        let serialQueue = DispatchQueue(label: "serial_queue")
 //        serialQueue.async {
@@ -159,7 +167,6 @@ class PublishEditController: BaseViewController {
     
     private lazy var subLabel: UILabel = {
         let subLabel = UILabel()
-        subLabel.text = "图片正在上传中(0/\(imageArr?.count ?? 0))..."
         subLabel.textColor = k333333Color
         subLabel.font = kRegularFont14
         subLabel.textAlignment = .left

+ 20 - 0
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceCommunity/SwiftMoyaNetWorkServiceCommunity.swift

@@ -147,6 +147,26 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
         }
     }
     
+    // MARK: - 获取上传地址和凭证
+    /// 获取上传地址和凭证
+    ///
+    /// - Parameters:
+    ///   - title: 视频标题
+    ///   - filename: 视频名称(必须带扩展名)
+    ///   - cover_url: 封面图,自定义视频封面URL地址
+    ///   - completion: 回调
+    func communityVideoUploadAuthApi(title:String = "", filename:String = "", cover_url:String = "", completion: @escaping apiCallBack) {
+        var parameters = Dictionary<String,Any>()
+        parameters.updateValue(title, forKey: "title")
+        parameters.updateValue(filename, forKey: "filename")
+        parameters.updateValue(cover_url, forKey: "cover_url")
+        SwiftProgressHUD.shared().showWait()
+        SwiftMoyaNetWorkManager.shared.requestObject(CommunityVideoAuthModel.self, target: MultiTarget(SwiftMoyaServiceCommunityApi.communityVideoUploadAuth(parameters: parameters))) { (communityVideoAuthModel) in
+            SwiftProgressHUD.shared().hide()
+            completion(communityVideoAuthModel)
+        }
+    }
+    
     // MARK: - 多关注页面feed流
     /// 多关注页面feed流
     ///

+ 12 - 0
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceCommunity/SwiftMoyaServiceCommunityApi.swift

@@ -33,6 +33,10 @@ public let kCommunityPostsApi = "/community/post"
 /// 发布内容(Post)
 public let kCommunityPublishApi = "/community/post"
 
+// MARK: - 获取上传地址和凭证
+/// 获取上传地址和凭证
+public let kCommunityVideoUploadAuthApi = "/community/getVodUploadAuth"
+
 // MARK: - 关注页面feed流
 /// 关注页面feed流
 public let kCommunityFollowFeedApi = "/community/feed"
@@ -69,6 +73,7 @@ public let kCommunityMemberFollowTopicCancelFollowApi = "/community/memberFollow
 /// - communityTopics: 话题列表
 /// - communityPosts: 内容列表
 /// - communityPublish: 发布内容
+/// - communityVideoUploadAuth: 视频上传凭证
 /// - communityFeed: 关注页面feed流
 /// - communityPostSuggest: 关注页面feed流
 /// - communityTopicDetail: 话题详情
@@ -84,6 +89,7 @@ public enum SwiftMoyaServiceCommunityApi {
     case communityTopics(parameters:Dictionary<String, Any>)
     case communityPosts(parameters:Dictionary<String, Any>)
     case communityPublish(parameters:Dictionary<String, Any>)
+    case communityVideoUploadAuth(parameters:Dictionary<String, Any>)
     case communityFollowFeed(parameters:Dictionary<String, Any>)
     case communityPostSuggest(parameters:Dictionary<String, Any>)
     case communityTopicDetail(parameters:Dictionary<String, Any>)
@@ -103,6 +109,7 @@ extension SwiftMoyaServiceCommunityApi: TargetType {
              .communityTopics,
              .communityPosts,
              .communityPublish,
+             .communityVideoUploadAuth,
              .communityFollowFeed,
              .communityPostSuggest,
              .communityTopicDetail,
@@ -129,6 +136,8 @@ extension SwiftMoyaServiceCommunityApi: TargetType {
             return kCommunityPostsApi
         case .communityPublish:
             return kCommunityPublishApi
+        case .communityVideoUploadAuth:
+            return kCommunityVideoUploadAuthApi
         case .communityFollowFeed:
             return kCommunityFollowFeedApi
         case .communityPostSuggest:
@@ -157,6 +166,7 @@ extension SwiftMoyaServiceCommunityApi: TargetType {
              .communityPostMy,
              .communityTopics,
              .communityPosts,
+             .communityVideoUploadAuth,
              .communityFollowFeed,
              .communityPostSuggest,
              .communityTopicDetail,
@@ -180,6 +190,7 @@ extension SwiftMoyaServiceCommunityApi: TargetType {
              .communityTopics(var parameters),
              .communityPosts(var parameters),
              .communityPublish(var parameters),
+             .communityVideoUploadAuth(var parameters),
              .communityFollowFeed(var parameters),
              .communityPostSuggest(var parameters),
              .communityTopicDetail(var parameters),
@@ -215,6 +226,7 @@ extension SwiftMoyaServiceCommunityApi: TargetType {
              .communityTopics,
              .communityPosts,
              .communityPublish,
+             .communityVideoUploadAuth,
              .communityFollowFeed,
              .communityPostSuggest,
              .communityTopicDetail,

+ 1 - 1
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceConfig/SwiftMoyaNetWorkServiceConfig.swift

@@ -115,7 +115,7 @@ class SwiftMoyaNetWorkServiceConfig: NSObject {
         var  multipartData = Array<Any>()
         let  parameters = Dictionary<String,Any>()
         for (_,image) in imageArray.enumerated() {
-            let data = image.jpegData(compressionQuality: 0.3)
+            let data = image.jpegData(compressionQuality: 1)
             let today = Date()
             let formData = MultipartFormData(provider: .data(data!), name: "image",fileName: "\(today).png", mimeType: "image/png")