浏览代码

1.调整参数

wenweiwei 3 年之前
父节点
当前提交
ab5bb461cc

+ 1 - 1
BFFramework.podspec

@@ -53,7 +53,7 @@ TODO: Add long description of the pod here.
     s.dependency 'BFMaterialKit'
     s.dependency 'ObjectMapper','4.2.0' # json转model库
     s.dependency 'AliyunOSSiOS','2.10.10' # 阿里云组件
-    s.dependency 'WechatOpenSDK-Swift','1.9.2' # 微信组件
+    s.dependency 'WechatOpenSDK-Swift','1.8.7.1' # 微信组件
     s.dependency 'MJRefresh','3.7.2' # 刷新组件
     s.dependency 'LMJHorizontalScrollText' ,'2.0.2'
     s.dependency 'TXLiteAVSDK_Player','8.9.10361' # 腾讯播放器组件

+ 8 - 6
BFFramework/Classes/BFModules/BFUtility/PQSingletoVideoPlayer.swift

@@ -25,7 +25,7 @@ public class PQSingletoVideoPlayer: NSObject {
     /// 播放状态回调
     public var playStatusBloc: ((_ playStatus: PQVIDEO_PLAY_STATUS) -> Void)?
     public var playControllerView: UIView?
-    public var playVideoData: PQVideoListModel?
+    public var playVideoData: BFVideoItemProtocol?
     public var isPlaying: Bool {
         return player.isPlaying()
     }
@@ -45,7 +45,10 @@ public class PQSingletoVideoPlayer: NSObject {
     /// - Parameters:
     ///   - videoData: <#videoData description#>
     ///   - controllerView: <#controllerView description#>
-    public func configPlyer(videoData: PQVideoListModel, controllerView: UIView, renderMode: TX_Enum_Type_RenderMode = .RENDER_MODE_FILL_SCREEN) {
+    public func configPlyer(videoData: BFVideoItemProtocol, controllerView: UIView, renderMode: TX_Enum_Type_RenderMode = .RENDER_MODE_FILL_SCREEN) {
+//        if playVideoData?.id == videoData.id {
+//            return
+//        }
         isPlayEnd = false
         isRealPlay = false
         isSemiRealPlay = false
@@ -61,8 +64,7 @@ public class PQSingletoVideoPlayer: NSObject {
         playControllerView = controllerView
         playVideoData = videoData
         if playVideoData!.playProgress >= 0.0 {
-            //
-            var progress: CGFloat = playVideoData!.playProgress
+            var progress: CGFloat = CGFloat(playVideoData!.playProgress)
             if progress > 5.0, progress < 20 {
                 progress = progress - 5.0
                 if progress <= 0 {
@@ -86,7 +88,7 @@ public class PQSingletoVideoPlayer: NSObject {
             player.setupVideoWidget(playControllerView, insert: 0)
             if playVideoData!.playProgress >= 0.0 {
                 //
-                var progress: CGFloat = playVideoData!.playProgress
+                var progress: CGFloat = CGFloat(playVideoData!.playProgress)
                 if progress > 5.0, progress < 20 {
                     progress = progress - 5.0
                     if progress <= 0 {
@@ -184,7 +186,7 @@ extension PQSingletoVideoPlayer: TXVodPlayListener {
                     PQEventTrackViewModel.videoRelationReportUpload(reportLogType: .reportLogType_realPlay, videoData: playVideoData, pageSource: nil, businessType: .bt_videoRealPlay, objectType: nil, extParams: nil, shareId: nil, videoIds: nil, playId: playId)
                 }
             }
-            playVideoData?.playProgress = CGFloat(playProgress)
+            playVideoData?.playProgress = Float64(playProgress)
             if progressBloc != nil {
                 progressBloc!(loadProgress, playProgress, duration)
             }

+ 14 - 11
BFFramework/Classes/EventTrack/ViewModel/PQEventTrackViewModel.swift

@@ -66,20 +66,23 @@ public class PQEventTrackViewModel: NSObject {
     ///   - videoIds: <#videoIds description#>
     ///   - playId: <#playId description#>
     ///   - headVideoId: <#headVideoId description#>
-    public class func videoRelationReportUpload(reportLogType: reportLogType, videoData: PQVideoListModel?, pageSource: PAGESOURCE? = nil, businessType: businessType?, objectType: objectType? = nil, extParams: [String: Any]? = nil, shareId: String? = nil, videoIds: String? = nil, playId: String? = nil, headVideoId: String? = nil) {
+    public class func videoRelationReportUpload(reportLogType: reportLogType, videoData: BFVideoItemProtocol?, pageSource: PAGESOURCE? = nil, businessType: businessType?, objectType: objectType? = nil, extParams: [String: Any]? = nil, shareId: String? = nil, videoIds: String? = nil, playId: String? = nil, headVideoId: String? = nil) {
         var tempExtParams: [String: Any] = extParams ?? [:]
-        if videoData?.reCreateVideoData != nil {
-            tempExtParams["projectId"] = videoData?.reCreateVideoData?.projectId ?? ""
-            tempExtParams["parentProjectId"] = videoData?.reCreateVideoData?.parentProjectId ?? ""
-            tempExtParams["rootProjectId"] = videoData?.reCreateVideoData?.rootProjectId ?? ""
-            tempExtParams["canProduce"] = videoData?.reCreateVideoData?.canReproduce ?? 0
-            if !tempExtParams.keys.contains("clickedVideoId") {
-                tempExtParams["videoId"] = videoData?.uniqueId ?? "0"
-            }
-            if videoData?.reCreateVideoData?.parentVideoId != nil {
-                tempExtParams["parentVideoId"] = videoData?.reCreateVideoData?.parentVideoId ?? ""
+        if videoData is PQVideoListModel {
+            if (videoData as? PQVideoListModel)?.reCreateVideoData != nil {
+                tempExtParams["projectId"] = (videoData as? PQVideoListModel)?.reCreateVideoData?.projectId ?? ""
+                tempExtParams["parentProjectId"] = (videoData as? PQVideoListModel)?.reCreateVideoData?.parentProjectId ?? ""
+                tempExtParams["rootProjectId"] = (videoData as? PQVideoListModel)?.reCreateVideoData?.rootProjectId ?? ""
+                tempExtParams["canProduce"] = (videoData as? PQVideoListModel)?.reCreateVideoData?.canReproduce ?? 0
+                if !tempExtParams.keys.contains("clickedVideoId") {
+                    tempExtParams["videoId"] = videoData?.uniqueId ?? "0"
+                }
+                if (videoData as? PQVideoListModel)?.reCreateVideoData?.parentVideoId != nil {
+                    tempExtParams["parentVideoId"] = (videoData as? PQVideoListModel)?.reCreateVideoData?.parentVideoId ?? ""
+                }
             }
         }
+        
         if objectType == .ot_reproduce_clickButton || objectType == .ot_reproduce_collectionBar || objectType == .ot_reproduce_collectionClicButton || objectType == .ot_reproduce_sameSourceButton {
             PQEventTrackViewModel.baseReportUpload(businessType: businessType, objectType: objectType, pageSource: pageSource != nil ? pageSource! : (videoData?.pageSource ?? .sp_category), extParams: tempExtParams, remindmsg: "再创作上报")
         } else {

+ 118 - 12
BFFramework/Classes/PModels/PQVideoListModel.swift

@@ -6,14 +6,122 @@
 //  Copyright © 2020 BytesFlow. All rights reserved.
 //
 
-import UIKit
 import BFCommonKit
+import UIKit
+
+public protocol BFVideoItemProtocol {
+    dynamic var uniqueId: String? { get set } // 唯一ID
+    dynamic var videoId: Int { get set } // 视频ID
+    dynamic var id: UInt64 { get set } // 视频ID
+    dynamic var eventId: String? { get set } // 事件ID
+    dynamic var title: String? { get set } // 标题
+    dynamic var attributedTitle: NSMutableAttributedString? { get set } // 富文本标题
+    dynamic var summary: String? { get set } // 描述
+    dynamic var imageUrl: String { get set } // 图片地址
+    dynamic var selectedImage: String { get set } // 图片地址
+    dynamic var isSelected: Bool { get set }
+    dynamic var recommendLogVO: String? { get set } // 推荐日志对象
+    dynamic var abInfoData: String? { get set } // AB
+    dynamic var pageCategoryId: Int { get set } // 页面分类ID
+    dynamic var version: String { get set } // 版本号
+    dynamic var mid: String { get set } // 设备ID
+    dynamic var date: Int { get set } // 当前时间戳  Float64(Date.init().timeIntervalSince1970) * 1000
+    var headVideoId: String? { get set } // 当前的相关推荐视频是属于哪个视频的相关推荐,值为那个头部视频的videoId
+    var auditStatus: Int { get set } // 审核状态 1 审核中,2 不通过 3 待修改,4 自己可见 5 通过 ,
+    var barrageCount: Int { get set } // 弹幕数量
+    var barrageSwitch: Int { get set } // 是否打开弹幕 1打开 -1关闭 ,
+    var auditReason: String? { get set } // 审核不通过或者待修改的原因
+    var barrage: Any? { get set } // 弹幕集合
+    var chargeDetail: [String: Any]? { get set } // 收费的相关信息
+    var commentCount: Int { get set } // 评论数量
+    var coverImg: [String: Any]? { get set } // 封面对象 ,
+    var cutVoStr: String? { get set } // h5剪切板内容 ,
+    var descr: String? { get set } // 视频简介 ,
+    var encryption: Int { get set } // 是否加密视频:0是1不是 ,
+    var favorited: Bool { get set } // 是否收藏 ,
+    var favoriteds: Int { get set } //  收藏数 ,
+    var fileExtensions: String? { get set } // 视频后缀 ,
+    var firstPicture: Bool { get set } // 封面是否是第一帧,false不是true是 ,
+    var gmtCreate: String? { get set } // 创建时间 ,
+    var gmtCreateDescr: String? { get set } // 发视频时间描述 ,
+    var gmtCreateTimestamp: Int { get set } // 创建时间戳 ,
+    var gmtModifie: String? { get set } // 修改时间 ,
+    var gmtModifiedTimestamp: Int { get set } // 修改时间戳 ,
+    var h5ShareImgPath: String? { get set } // h5分享图URL ,
+    var hasShareSpaceData: Bool { get set } // 是否有分享空间数据,
+    var isRecommendShare: Int { get set } // 是否有分发推荐的封面和标题 1 有 0 无 传空或者不传默认为0,
+    var lastTimestamp: Int { get set } // 时间戳 ,
+    //  liteVideoData (LiteVideoDataVO, optional): lite数据,
+    var measure: Int { get set }
+    var measureId: Int { get set }
+    var measureType: Int { get set } // 0 非流量池 1曝光池2普通推荐测试池3待推荐测试池 ,
+    var playBeforeDay: Int { get set } // 播放时间距离今天的天数 ,
+    var playCount: Int { get set } // 播放次数 ,
+    var playCountFormatStr: String? { get set } //  用户视频总播放数,格式化后的值,前端直接显示 ,
+    var playCountTotal: Int { get set } // 总播放次数 ,
+    var playTime: Int { get set } // 播放时间 ,
+    var processShareHeadLab: [String: Any]? { get set } // 视频分享片尾数据 ,
+    var processShareTailLab: [String: Any]? { get set } // 视频分享片尾数据 ,
+    var pwd: String? { get set } // 视频密码 ,
+    var recommendId: String? { get set } // 推荐链路ID ,
+    var recommendSource: Int { get set } // 0 默认 1 第四范式
+    var recommendStatus: Int { get set } // 推荐状态 ,
+    var rotate: Int { get set } // 旋转角度 ,
+    var sampleJobId: String? { get set }
+    var sampleRequestId: String? { get set }
+    var sampleTotalTime: Int { get set }
+    var sampleTranscodeStatus: Int { get set }
+    var sampleTransedVideoPath: String? { get set }
+    var sendBeforeDay: Int { get set } // 发视频距离今天的天数 ,
+    var sensitiveMsg: String? { get set } // 敏感提示信息 ,
+    var sensitiveStatus: Int { get set } //  内容敏感状态(0:未检验,1:不敏感,2:敏感,3:敏感已审) ,
+    var shareCount: Int { get set } // 分享到朋友圈次数 ,
+    var shareId: String? { get set } // 分享的 ID
+    var shareCountFriend: Int { get set } // 分享到微信好友 ,
+    var shareImgPath: String? { get set } // 分享图URL ,
+    var shareLinkType: Int { get set } // 分享到微信好友的图片的链接的类型 ,
+    var sharePageType: Int { get set } // 0 综合模块 1 feed流 ,
+    var shareTitle: String? { get set } // 分享到微信好友的图片的title ,
+    var showHotRecommend: Bool { get set } // 是否需要显示热门推荐 ,
+    var size: Int { get set } //  大小 ,
+    var status: Int { get set } // 数据状态,1 有效,2 已删除,3 已屏蔽,4 关注可见,5 分享可见 6 自己可见 ,
+    var tabShareImgPath: String? { get set } // 转发分享图URL ,
+    var thumbnailImagePath: String? { get set } // 缩略图URL ,
+    var totalTime: Int { get set } // 视频时长 ,
+    var totalTimeParas: String? { get set } // 视频时长十分秒 ,
+    var transcodeStatus: Int { get set } // 转码状态:1-不需转码 2-转码中 3-转码完成 4-转码失败 ,
+    var transcodeVOList: [Any]? { get set } // 多码率数据 ,
+    var uid: Int { get set } // 视频的用户ID ,
+    var user: [String: Any]? { get set } //  用户对象 ,
+    var videoCollectionId: Int { get set } // 视频所在的视频集ID ,
+    var videoCoverSnapshotPath: String? { get set } // 原始封面图片 ,
+    var videoPath: String? { get set } // 视频地址 ,
+    var videoReportMeta: String? { get set } // 视频上报数据,上报时原样返回 ,
+    var videoShareJumpModel: [String: Any]? { get set } // 分享页跳转的信息 ,
+    var playProgress: Float64 { get set } // 已播放时长
+    var duration: Float64 { get set } // 视频总时长
+    var tab_pageType: TAB_PAGETYPE { get set } // 0-推荐 1-关注
+    var pageSource: PAGESOURCE { get set }
+    var isVerticality: Bool { get set }
+    var isShareList: Bool { get set } // 是否是分享列表
+    var uplpadBucketKey: String? { get set } // 上传视频地址
+    var uplpadStatus: Int { get set } // 上传视频状态  1-上传中 2-上传完成 3-上传失败 4-发布中 4-发布完成
+//    var uplpadRequest: OSSMultipartUploadRequest?
+    var stsToken: [String: Any]? { get set } // 上传信息
+    var localPath: String? { get set } // 地址
+    var progress: Float { get set }
+    var projectId: String? { get set } // 项目ID-发布创作的视频时必传,会在进入创作工具页时生成,以app_no_projectdata为前缀
+    var autoType: autoType? { get set } // autoType 自动动作的类型
+    // 发布视频来源类型
+    var videoFromScene: videoFromScene { get set }
+}
 
-open class PQVideoListModel: PQBaseModel {
-    @objc required public init() {
+open class PQVideoListModel: PQBaseModel, BFVideoItemProtocol {
+    @objc public required init() {
         super.init()
     }
 
+    public var id: UInt64 = 0
     public var headVideoId: String? // 当前的相关推荐视频是属于哪个视频的相关推荐,值为那个头部视频的videoId
     public var auditStatus: Int = 0 // 审核状态 1 审核中,2 不通过 3 待修改,4 自己可见 5 通过 ,
     public var barrageCount: Int = 0 // 弹幕数量
@@ -104,15 +212,15 @@ open class PQVideoListModel: PQBaseModel {
     public var watchInfoH: CGFloat = 0 // add by ak watch info 高度
     public var watchInfoY: CGFloat = 0 // add by ak watch info Y 值
     public var relationData: [PQVideoListModel]?
-    public var playProgress: CGFloat = 0 // 已播放时长
-    public var duration: CGFloat = 0 // 视频总时长
+    public var playProgress: Float64 = 0 // 已播放时长
+    public var duration: Float64 = 0 // 视频总时长
     public var tab_pageType: TAB_PAGETYPE = .TAB_PAGETYPE_NORMAL // 0-推荐 1-关注
     public var pageSource: PAGESOURCE = .sp_category
     public var isVerticality: Bool = false
     public var isShareList: Bool = false // 是否是分享列表
 
     public var funcH: CGFloat = cDefaultMargin * 33
-    public let funcW: CGFloat = cDefaultMargin * 5
+    public var funcW: CGFloat = cDefaultMargin * 5
     public var uplpadImage: UIImage? // 上传的图片封面
     public var uplpadBucketKey: String? // 上传视频地址
     public var uplpadStatus: Int = 0 // 上传视频状态  1-上传中 2-上传完成 3-上传失败 4-发布中 4-发布完成
@@ -127,12 +235,12 @@ open class PQVideoListModel: PQBaseModel {
     public var autoType: autoType? // autoType 自动动作的类型
     // add by ak 发布视频来源类型
     public var videoFromScene: videoFromScene = .UploadNormal
-    
+
     // 视频分类
-    public var categoryName:String = ""
+    public var categoryName: String = ""
     // 视频分类图
-    public var categoryImage:String?
-    
+    public var categoryImage: String?
+
     override public init(jsonDict: [String: Any]) {
         super.init(jsonDict: jsonDict)
 
@@ -272,9 +380,7 @@ open class PQVideoListModel: PQBaseModel {
         itemHeight = (cScreenWidth - cDefaultMargin * 3) / 2 * originImageH / originImageW + tempTitleH + cDefaultMargin * 4.5
 
         if title != nil, (title?.count ?? 0) > 0 {
- 
             titleH = sizeWithText(text: title ?? "", font: UIFont.systemFont(ofSize: 26, weight: .medium), size: CGSize(width: cScreenWidth - cDefaultMargin * 2, height: CGFloat.greatestFiniteMagnitude)).height + cDefaultMargin
-
         }
         if titleH > 70 {
             titleH = 70

+ 1 - 1
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointPublicController.swift

@@ -951,7 +951,7 @@ extension PQStuckPointPublicController {
         let tempModel = PQVideoListModel()
         tempModel.title = selectTitle
         tempModel.summary = ""
-        tempModel.duration = CGFloat(uploadData?.duration ?? 0)
+        tempModel.duration = Float64(uploadData?.duration ?? 0)
         tempModel.uplpadImage = uploadData?.image
         tempModel.uplpadBucketKey = uploadRequest?.objectKey
         tempModel.localPath = uploadData?.localPath