浏览代码

动态从服务器取 TOKEN

jsonwang 3 年之前
父节点
当前提交
57e6e41266

+ 13 - 4
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -284,7 +284,7 @@ public class BFRecordScreenController: BFBaseViewController {
     }()
     
     //录音识别文字
-    let speechTranscriberUtil:PQSpeechTranscriberUtil = PQSpeechTranscriberUtil.init()
+    var speechTranscriberUtil:PQSpeechTranscriberUtil?
     
     lazy var progressThumV : BFVideoThumbProgressView = {
         let vv = BFVideoThumbProgressView(frame: CGRect(x: 0, y: 54, width: cScreenWidth, height: 50))
@@ -335,6 +335,8 @@ public class BFRecordScreenController: BFBaseViewController {
         super.viewWillAppear(animated)
         self.navigationController?.isNavigationBarHidden = true
         hiddenNavigation()
+        
+   
     }
     
     public override func viewWillDisappear(_ animated: Bool) {
@@ -346,6 +348,13 @@ public class BFRecordScreenController: BFBaseViewController {
         super.viewDidLoad()
         _ = disablePopGesture()
         
+        //add by ak 取 nsl token
+        BFRecordScreenViewModel.getNlsAccessToken {[weak self] token ,appkey in
+             BFLog(message: "nls appkey is \(appkey), token is \(token)")
+            self?.speechTranscriberUtil = PQSpeechTranscriberUtil.init(token, appid: appkey)
+        }
+     
+        
         view.backgroundColor = .lightGray
         
         playView = GPUImageView(frame: view.bounds)
@@ -618,8 +627,8 @@ public class BFRecordScreenController: BFBaseViewController {
         assetPlayer?.play()
         
         
-        speechTranscriberUtil.delegate = self
-        speechTranscriberUtil.startTranscriber()
+        speechTranscriberUtil?.delegate = self
+        speechTranscriberUtil?.startTranscriber()
         
         
         
@@ -627,7 +636,7 @@ public class BFRecordScreenController: BFBaseViewController {
     
     @objc func endRecord(){
         
-        speechTranscriberUtil.endTranscriber()
+        speechTranscriberUtil?.endTranscriber()
         playBtn.isSelected = true
         // 存储录音
         isRecording = false

+ 30 - 0
BFRecordScreenKit/Classes/RecordScreen/ViewModel/BFRecordScreenViewModel.swift

@@ -11,6 +11,36 @@ import ObjectMapper
 import RealmSwift
 import BFVideoEditKit
 public class BFRecordScreenViewModel:NSObject{
+   
+    /// 取文本转语言 token
+    /// - Parameter completeHander: <#completeHander description#>
+    class public func getNlsAccessToken(completeHander: @escaping (_ token: String, _ appkey:String) -> Void) {
+        let NlsAccessTokenKey: String = "NlsAccessTokenKey_JiangjieApp"
+
+        let nowTime: TimeInterval = Date().timeIntervalSince1970
+
+        //        token = "5d96258dcea34d7b91576031cd25a9ba"; 返回数据
+        //        expireTime = 1601376826000; //1601377050000;
+        let saveToken: Dictionary? = getUserDefaults(key: NlsAccessTokenKey) as? [String: Any] ?? nil
+        if saveToken != nil && Double(saveToken!["expireTime"] as! Double) > nowTime * 1000 {
+            BFLog(message: "nls token 还有效期内不用重新请求 \(String(describing: saveToken!["expireTime"])) nowTime:\(nowTime * 1000)")
+            completeHander(saveToken!["token"] as! String,saveToken!["appkey"] as! String)
+            return
+        }
+        BFNetRequestAdaptor.getRequestData(url: PQENVUtil.shared.clipapiapi + getNlsAccessTokenForJiangjieApp, parames: nil, commonParams: commonParams()) { response, _, _, _ in
+
+            if let response = response as? [String: Any], let token = response["token"] as? String , let appkey = response["appkey"] as? String {
+                let nowTime: TimeInterval = Date().timeIntervalSince1970
+
+                BFLog(message: "nowTime is \(nowTime) token is \(token)")
+                saveUserDefaults(key: NlsAccessTokenKey, value: response)
+
+                completeHander(token,appkey)
+            } else {
+                completeHander("","")
+            }
+        }
+    }
     
     
     /// 分段识别录音