Pārlūkot izejas kodu

点击播放时 如果当前段发音数据未完成时 显示 加载中动画。

jsonwang 3 gadi atpakaļ
vecāks
revīzija
90416eb1b0

+ 14 - 5
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -799,7 +799,7 @@ public class BFRecordScreenController: BFBaseViewController {
                     wself.itemModels[wself.currItemModelIndex ].titleStickers.remove(at: index)
                     wself.subtitleLabel.text = ""
                 } else {
-                    wself.loadingView.isHidden = false
+                    wself.loadingView.loadShow()
                     wself.tts?.runNextTask()
                     //更新已经变音数据
                     // 更新数据
@@ -860,7 +860,7 @@ public class BFRecordScreenController: BFBaseViewController {
                     wself.voiceIconView.setNetImage(url: "\(wself.mSelectVoiced?.avatarUrl ?? "")")
                     if(!wself.voiceChangeStickerFinish(itemIndex: wself.currItemModelIndex)){
 
-                        wself.loadingView.loading()
+                        wself.loadingView.loadShow()
                     }
                     //静默转换语音
                     wself.tts?.runNextTask()
@@ -2146,6 +2146,11 @@ public class BFRecordScreenController: BFBaseViewController {
     }
 
     func play() {
+        //如果当前段有没有转完的发音人显示 Loadingview
+        if(!voiceChangeStickerFinish(itemIndex: currItemModelIndex,isShowLoadView: true)){
+          
+            return
+        }
         BFLog(1, message: "开始播放 \(currentAssetProgress.seconds)")
         recorderManager?.voiceModel = nil
         events.append(WithDrawModel(type: 1, timestamp: currentAssetProgress, recordItem: rscurrentManager.recordItem!))
@@ -2823,7 +2828,7 @@ extension BFRecordScreenController: BFTTSManagerDelegte{
         loadingView.titleL.text = "变音中 \(itemModels[currItemModelIndex].voiceChangeStickers.count / itemModels[currItemModelIndex].titleStickers.count)%"
         
         if(voiceChangeStickerFinish(itemIndex: currItemModelIndex)){
-            loadingView.isHidden = true
+            loadingView.loadHidden()
         }
         
     }
@@ -2859,8 +2864,8 @@ extension BFRecordScreenController: BFTTSManagerDelegte{
     
     /// 查看发音人文件是否已经全都完成,如果没有完成不能进行预览,合成操作
     /// - Parameter itemIndex: 段落 ID ,不传值是所有段落
-    /// - Returns: 是否全都完成
-    func voiceChangeStickerFinish(itemIndex:Int = -100) -> Bool{
+    /// - Returns: 是否全都完成  true 是全部完成
+    public func voiceChangeStickerFinish(itemIndex:Int = -100,isShowLoadView:Bool = false) -> Bool{
         if(mSelectVoiced == nil){
             return true
         }
@@ -2885,6 +2890,10 @@ extension BFRecordScreenController: BFTTSManagerDelegte{
         if(FinishCount < AllCount){
             isFinish = false
         }
+        
+        if(isShowLoadView && !isFinish){
+            loadingView.loadShow()
+        }
      
         return isFinish
     }

+ 8 - 14
BFRecordScreenKit/Classes/RecordScreen/View/BFLoadingView.swift

@@ -28,7 +28,7 @@ class BFLoadingView: UIView {
         let closedBtn = UIButton(type: .custom)
         closedBtn.frame = CGRect(x: 13, y: 43, width: cDefaultMargin * 3, height: cDefaultMargin * 3)
         closedBtn.setImage(imageInRecordScreenKit(by: "LoadingClose"), for: .normal)
-        closedBtn.addTarget(self, action: #selector(removeView), for: .touchUpInside)
+        closedBtn.addTarget(self, action: #selector(loadHidden), for: .touchUpInside)
         return closedBtn
     }()
 
@@ -72,24 +72,18 @@ class BFLoadingView: UIView {
         titleL.frame = CGRect(x: (cScreenWidth - 88) / 2, y: loadingImage.frame.maxY + 10, width: 88, height: 22)
     }
 
-    /// 开始加载
-    public func loading() {
-        if loadingImage.superview == nil {
-            addSubview(loadingImage)
-        }
+    ///   显示动画
+    public func loadShow() {
+    
         isHidden = false
         loadingImage.displayGIF(data: nil, images: gifImages, repeatCount: .max, duration: duration ?? 2)
     }
 
-    /// 停止加载
-    public func endLoading() {
-        loadingImage.removePlayGIF()
-    }
-
-    @objc public func removeView() {
+    // 隐藏动画
+    @objc public func loadHidden() {
+        isHidden = true
         loadingImage.removePlayGIF()
-        loadingImage.removeFromSuperview()
-        removeFromSuperview()
+     
     }
 
     deinit {