浏览代码

update视频缩略图

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

+ 6 - 6
BFRecordScreenKit/Classes/BFRecordItemModel.swift

@@ -30,7 +30,7 @@ public class BFRecordItemModel: NSObject {
     public var titleStickers = [PQEditSubTitleModel]() // 字幕贴纸
     public var coverImg: UIImage? // 封面图
     public var playItem: AVPlayerItem? // 视频playerItem
-    public var urlAsset: AVURLAsset? // 视频Asset
+    public var videoAsset: AVURLAsset? // 视频Asset
     public var mediaType: StickerType?
     public var index = 0
     public var width = 0
@@ -90,11 +90,11 @@ public class BFRecordItemModel: NSObject {
         options.deliveryMode = .automatic
 
         PHCachingImageManager().requestAVAsset(forVideo: phasset, options: options, resultHandler: { [weak self] (asset: AVAsset?, _: AVAudioMix?, _) in
-            if let urlAsset = asset as? AVURLAsset {
-                self?.materialDuraion = urlAsset.duration.seconds
-                self?.localPath = (urlAsset.url.absoluteString.removingPercentEncoding)?.replacingOccurrences(of: "file://", with: "")
-                self?.urlAsset = urlAsset
-                self?.fetchAVUrlAsset?(urlAsset)
+            if let videoAsset = asset as? AVURLAsset {
+                self?.materialDuraion = videoAsset.duration.seconds
+                self?.localPath = (videoAsset.url.absoluteString.removingPercentEncoding)?.replacingOccurrences(of: "file://", with: "")
+                self?.videoAsset = videoAsset
+                self?.fetchAVUrlAsset?(videoAsset)
             }
         })
     }

+ 10 - 10
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -350,6 +350,7 @@ public class BFRecordScreenController: BFBaseViewController {
         collectionView.register(BFImageCoverViewCell.self, forCellWithReuseIdentifier: String(describing: BFImageCoverViewCell.self))
         collectionView.register(BFVideoCoverViewCell.self, forCellWithReuseIdentifier: String(describing: BFVideoCoverViewCell.self))
         collectionView.isPagingEnabled = true
+        collectionView.bounces = false
         collectionView.showsVerticalScrollIndicator = false
         collectionView.showsHorizontalScrollIndicator = false
         collectionView.delegate = self
@@ -1024,12 +1025,19 @@ public class BFRecordScreenController: BFBaseViewController {
     func fetchVideo() {
         if assets.count > 0 {
             currItemModelIndex = 0
-
             for (index, asset) in assets.enumerated() {
                 let itemModel = BFRecordItemModel()
                 itemModel.index = index
                 itemModel.initOriginData(phasset: asset)
                 itemModels.append(itemModel)
+                if index == currItemModelIndex {
+                    itemModel.fetchAVUrlAsset = { [weak self] urlAsset in
+                        DispatchQueue.main.async { [weak self] in
+                            self?.progressThumV.videoAsset = urlAsset
+                            self?.progressThumV.isHidden = false
+                        }
+                    }
+                }
             }
             collectionView.reloadData()
         }
@@ -1227,14 +1235,6 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
         recordItem.fetchCoverImg = { [weak cell] _ in
             cell?.addData()
         }
-        recordItem.fetchAVUrlAsset = { [weak self] urlAsset in
-            if indexPath.item == self?.currItemModelIndex {
-                DispatchQueue.main.async { [weak self] in
-                    self?.progressThumV.videoAsset = urlAsset
-                    self?.progressThumV.isHidden = false
-                }
-            }
-        }
         recordItem.fetchPlayItem = { [weak self, weak cell] _ in
             if indexPath.item == self?.currItemModelIndex {
                 self?.setAudioPlay(item: recordItem.playItem)
@@ -1262,7 +1262,7 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
             currItemModelIndex = page
             let recordItem = itemModels[currItemModelIndex]
             // 更新缩略图
-            progressThumV.videoAsset = recordItem.urlAsset
+            progressThumV.videoAsset = recordItem.videoAsset
             progressThumV.isHidden = false
             if recordItem.mediaType == .VIDEO {
                 let currCell: BFVideoCoverViewCell? = collectionView.cellForItem(at: IndexPath(item: currItemModelIndex, section: 0)) as? BFVideoCoverViewCell