改了蓝牙断开同传、现场录音、通话录音的相关逻辑处理
authorliangzhenying <867174124@qq.com>
Mon, 2 Mar 2026 07:59:59 +0000 (15:59 +0800)
committerliangzhenying <867174124@qq.com>
Mon, 2 Mar 2026 07:59:59 +0000 (15:59 +0800)
ShenYin/DeepChordsSdk/DCBleManager.swift
ShenYin/DeepChordsSdk/DCPhoneRecord.swift
ShenYin/ShenYin.xcodeproj/project.pbxproj
ShenYin/ShenYin/Sdk/CCBleManager.swift [deleted file]
ShenYin/ShenYin/Sdk/CCDevice.swift [deleted file]
ShenYin/ShenYin/Sdk/CCPage.swift [deleted file]
ShenYin/ShenYin/Sdk/DcSdk/VC/DcXclyVC.swift
ShenYin/ShenYin/Sdk/DcSdk/tool/DcThly.swift [deleted file]
ShenYin/ShenYin/Sdk/JoySdk/VC/JoyXclyVC.swift
ShenYin/ShenYin/Sdk/JoySdk/tool/CCBleManager.swift
ShenYin/ShenYin/Sdk/LogManager.swift

index 4026cd0..bc69cea 100644 (file)
@@ -61,6 +61,9 @@ extension DCBleManager{
     /// 通知断开蓝牙
     public func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) {
         DCLogger.debug("蓝牙已断开 \(peripheral)")
+        if DCPhoneRecord.shared.isRecording {
+            DCPhoneRecord.shared.stop()
+        }
         StarburstSdk.shared().bleDisConnected()
     }
 
index 19ca6ae..172c4c3 100644 (file)
@@ -38,9 +38,11 @@ public class DCPhoneRecord {
     var translateList : [(String,Int)] = []
     var translateText = ""
     
+    var isRecording = false
     
     /// 开始
     public func start(){
+        isRecording = true
         let config = StarburstAsrConfig()
         config.isTranslate = isTranslate
         config.fromLanguage = fromLanguage
@@ -97,15 +99,20 @@ public class DCPhoneRecord {
                 }
             }
         } stateChange: {[weak self] code in
+            if code.rawValue == 20002 {
+                self?.isRecording = false
+            }
             DCLogger.debug("状态改变",code)
             self?.codeCallback?(code.rawValue)
         } interruption: { [weak self]  in
+            self?.isRecording = false
             self?.interruptionCallBack?()
         }
     }
     
     /// 停止
     public func stop(){
+        isRecording = false
         StarburstSdk.shared().stopRecordAsr {[weak self] filePath in
             DCLogger.debug("文件录音保存路径 \(filePath ?? "")")
             self?.filePathCallBack?(filePath)
index 790f736..6cf61ab 100644 (file)
                                Resource/record_start_joy.gif,
                                Resource/record_start.gif,
                                Sdk/CCAiManager.swift,
-                               Sdk/CCBleManager.swift,
-                               Sdk/CCDevice.swift,
-                               Sdk/CCPage.swift,
                                Sdk/DcSdk/tool/CCBleManager.swift,
                                Sdk/DcSdk/tool/CCConfig.swift,
                                Sdk/DcSdk/tool/CCDevice.swift,
                                Sdk/DcSdk/tool/DcSdkManager.swift,
                                Sdk/DcSdk/tool/DcStereo.swift,
                                Sdk/DcSdk/tool/DcTcty.swift,
-                               Sdk/DcSdk/tool/DcThly.swift,
                                Sdk/DcSdk/tool/DcXcly.swift,
                                Sdk/DcSdk/tool/JLAudioUnitKit.xcframework,
                                Sdk/DcSdk/tool/OpusTools.swift,
                                Info.plist,
                                playboy.storyboard,
                                playboy.xcassets,
-                               Sdk/CCBleManager.swift,
-                               Sdk/CCDevice.swift,
-                               Sdk/CCPage.swift,
                                Sdk/DcSdk/tool/CCBleManager.swift,
                                Sdk/DcSdk/tool/CCConfig.swift,
                                Sdk/DcSdk/tool/CCDevice.swift,
                                Sdk/DcSdk/tool/DcSdkManager.swift,
                                Sdk/DcSdk/tool/DcStereo.swift,
                                Sdk/DcSdk/tool/DcTcty.swift,
-                               Sdk/DcSdk/tool/DcThly.swift,
                                Sdk/DcSdk/tool/DcXcly.swift,
                                Sdk/DcSdk/tool/JLAudioUnitKit.xcframework,
                                Sdk/DcSdk/tool/OpusTools.swift,
                                "/Localized: LaunchScreen.storyboard",
                                Assets.xcassets,
                                Info.plist,
-                               Sdk/CCBleManager.swift,
-                               Sdk/CCDevice.swift,
-                               Sdk/CCPage.swift,
                                Sdk/JoySdk/tool/CCBleManager.swift,
                                Sdk/JoySdk/tool/CCConfig.swift,
                                Sdk/JoySdk/tool/CCDevice.swift,
diff --git a/ShenYin/ShenYin/Sdk/CCBleManager.swift b/ShenYin/ShenYin/Sdk/CCBleManager.swift
deleted file mode 100644 (file)
index 99f1f7a..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-////
-////  CCBleManager.swift
-////  ShenYin
-////
-////  Created by liangshi on 2025/12/25.
-////
-//
-//import UIKit
-//import CoreBluetooth
-//import AVFAudio
-//
-////#if FEATURE_X
-//import DeepChordsSdk
-////#endif
-//
-//
-//class DCPeripheral{
-//    var device:CBPeripheral!
-//    var mac = ""
-//    init(device: CBPeripheral!, mac: String = "") {
-//        self.device = device
-//        self.mac = mac
-//    }
-//}
-//
-//class CCBleManager: NSObject {
-//    var discoverDeviceCallback: (([DCPeripheral]) -> Void)?
-//    var didConnectDeviceCallback: ((DCPeripheral) -> Void)?
-//    var conetedFailureCallback: ((DCPeripheral) -> Void)?
-//    
-//    private var centralManager: CBCentralManager!
-//    var devices: [DCPeripheral] = []
-//    var connectPeripheral: DCPeripheral?
-//    static let shared = CCBleManager()
-//    var isConnetd:Bool = false
-//    
-//    private override init() {
-//        super.init()
-//        centralManager = CBCentralManager(delegate: self, queue: nil)
-//    }
-//}
-//extension CCBleManager:CBCentralManagerDelegate{
-//    func centralManagerDidUpdateState(_ central: CBCentralManager) {
-//        Logger.debug("蓝牙状态",central.state.rawValue)
-//        switch central.state {
-//        case.unknown:
-//            break
-//        case.resetting:
-//            break
-//        case.unsupported:
-//            break
-//        case.unauthorized:
-//            break
-//        case.poweredOff:
-//            self.isConnetd = false
-//            NotificationManager.post(type: .deviceValidChange, objtect: nil)
-//            break
-//        case.poweredOn:
-//            startScanDevice()
-//            checkConectState()
-//            break
-//        @unknown default:
-//            break
-//        }
-//        OtaMananger.shared.otaManager.centralManagerDidUpdateState(central)
-//    }
-//    
-//    func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
-//        if devices.map({ $0.device }).contains(peripheral) {
-//            return
-//        }
-//        Logger.debug(peripheral)
-//        
-//        if let name = peripheral.name,name.hasPrefix("AI") {
-//            let mac = DcSdkManager.getMac(advertisementData) ?? ""
-//            devices.append(DCPeripheral(device: peripheral,mac: mac))
-//            discoverDeviceCallback?(devices)
-//        }
-//        else{
-////            let mac = JoySdkManager.getMac(advertisementData) ?? ""
-////            devices.append(DCPeripheral(device: peripheral,mac: mac))
-////            discoverDeviceCallback?(devices)
-//        }
-////        if CCDevice.isJoy{
-////            let mac = JoySdkManager.getMac(advertisementData) ?? ""
-////            devices.append(DCPeripheral(device: peripheral,mac: mac))
-////            discoverDeviceCallback?(devices)
-////        }
-////        else{
-////            let mac = DcSdkManager.getMac(advertisementData) ?? ""
-////            devices.append(DCPeripheral(device: peripheral,mac: mac))
-////            discoverDeviceCallback?(devices)
-////        }
-//    }
-//    
-//    func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) {
-//        stopScanDevice()
-//        Logger.debug("蓝牙已连接 \(peripheral)")
-//        peripheral.delegate = self
-//        if CCDevice.isJoy{
-////            peripheral.discoverServices([CBUUID(string: JoySdkManager.serviceUUID),CBUUID(string: OtaMananger.otaServiceUUId)]);
-//        }
-//        else{
-//            DCBleManager.shared.centralManager(central, didConnect: peripheral)
-//            peripheral.discoverServices([CBUUID(string: DCBleManager.serviceUUID),CBUUID(string: OtaMananger.otaServiceUUId)]);
-//        }
-//    }
-//    func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) {
-//        Logger.debug("peripheral: %@ failed to connect", peripheral)
-//        conetedFailureCallback?(connectPeripheral!)
-//    }
-//    func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) {
-//        Logger.debug("蓝牙已断开 \(peripheral)")
-//        YLprogressHUD.showAutoHiden("蓝牙已断开".l10n)
-//        self.isConnetd = false
-//        if CCDevice.isJoy{
-//        }
-//        else{
-//            DCBleManager.shared.centralManager(central, didDisconnectPeripheral: peripheral, error: nil)
-//        }
-//        NotificationManager.post(type: .deviceValidChange, objtect: nil)
-//        OtaMananger.shared.otaManager.centralManager(central, didDisconnectPeripheral: peripheral, error: error)
-//        checkConectState()
-//    }
-//}
-//
-//extension CCBleManager: CBPeripheralDelegate {
-//    func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) {
-//        Logger.debug("发现服务成功")
-//        for service in peripheral.services! {
-//            Logger.debug("peripheral service: %@", service)
-//            peripheral.discoverCharacteristics(nil, for: service)
-//        }
-//    }
-//    
-//    func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) {
-//        if CCDevice.isJoy{
-////            if (service.uuid.uuidString == JoySdkManager.serviceUUID) {
-////                JoySdkManager.shared.peripheral(peripheral, didDiscoverCharacteristicsFor: service, error: error)
-////            }
-////            else if service.uuid.uuidString == OtaMananger.otaServiceUUId{
-////                OtaMananger.shared.otaManager.peripheral(peripheral, didDiscoverCharacteristicsFor: service, error: error)
-////            }
-//        }
-//        else{
-//            DCBleManager.shared.peripheral(peripheral, didDiscoverCharacteristicsFor: service, error: error)
-//        }
-//    }
-//    
-//    func peripheral(_ peripheral: CBPeripheral, didUpdateNotificationStateFor characteristic: CBCharacteristic, error: (any Error)?) {
-//        if CCDevice.isJoy{
-////            if (characteristic.isNotifying == true && characteristic.service?.uuid.uuidString == JoySdkManager.serviceUUID && characteristic.uuid.uuidString == JoySdkManager.notifyUUID) {
-////                Logger.debug("特征使能成功")
-////                JoySdkManager.shared.bleConnected()
-////            }
-////            if OtaMananger.isOtadata(characteristic){
-////                OtaMananger.shared.otaManager.peripheral(peripheral, didUpdateNotificationStateFor: characteristic, error: error)
-////            }
-//        }
-//    }
-//    
-//    func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
-//        //        Logger.debug("收到数据 ===uUId ",characteristic.uuid)
-//        if CCDevice.isJoy{
-////            if OtaMananger.isOtadata(characteristic){
-////                if let _ = characteristic.value,error == nil {
-////                    OtaMananger.shared.otaManager.peripheral(peripheral, didUpdateValueFor: characteristic)
-////                }
-////                else{
-////                    Logger.debug("ota 收到数据 ===\(characteristic.uuid)","无数据")
-////                }
-////            }
-////            else {
-////                //MARK: 需要配置传入数据
-////                JoySdkManager.shared.receiveValue(characteristic)
-////            }
-//        }
-//        else{
-//            DCBleManager.shared.peripheral(peripheral, didUpdateValueFor: characteristic, error: error)
-//        }
-//    }
-//    
-//    func peripheral(_ peripheral: CBPeripheral, didModifyServices invalidatedServices: [CBService]) {
-//        // Accessory's GATT database has updated. Refresh your local cache (if any)
-//    }
-//    
-//    func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: (any Error)?) {
-//        
-//    }
-//}
-//
-//extension CCBleManager{
-//    func startScanDevice() {
-//        //        centralManager.stopScan()
-//        Logger.debug("扫描中...")
-//        Logger.debug("蓝牙状态",centralManager.state.rawValue)
-//        devices = []
-//        //        let list = centralManager.retrieveConnectedPeripherals(withServices: [CBUUID(string: kJoyGemAIServiceUUID)])
-//        //        Logger.debug("已连接设备",list)
-//        //        for item in list {
-//        //            if let mac = DeviceCache.shared.getMac(item.identifier.uuidString){
-//        //                devices.append(DCPeripheral(device: item,mac: mac))
-//        //            }
-//        //        }
-//        if CCDevice.isJoy{
-////            centralManager.scanForPeripherals(withServices: [CBUUID(string: JoySdkManager.serviceUUID)],options: [CBCentralManagerScanOptionAllowDuplicatesKey : false])
-//        }
-//        else{
-//            centralManager.scanForPeripherals(withServices: [CBUUID(string: DCBleManager.serviceUUID)],options: [CBCentralManagerScanOptionAllowDuplicatesKey : false])
-//        }
-//        discoverDeviceCallback?(devices)
-//    }
-//    
-//    func stopScanDevice() {
-//        centralManager.stopScan()
-//    }
-//    
-//    func connectPeripheral(_ peripheral: DCPeripheral) {
-//        connectPeripheral = peripheral
-//        if let name = peripheral.device.name,name.hasPrefix("AI") {
-//            CCDevice.isJoy = false
-//        }
-//        else{
-//            CCDevice.isJoy = true
-//        }
-//        CCDevice.initSdk()
-//        Logger.debug(peripheral.device.name ?? "","连接中...")
-//        centralManager.connect(peripheral.device, options: [CBConnectPeripheralOptionEnableTransportBridgingKey:true])
-//    }
-//    
-//    func cancel() {
-//        guard let peripheral = connectPeripheral else { return  }
-//        if self.isConnetd {
-//            self.isConnetd = false
-//            centralManager.cancelPeripheralConnection(peripheral.device)
-//        }
-//        
-//        NotificationManager.post(type: .deviceValidChange, objtect: nil)
-//        connectPeripheral = nil
-//    }
-//    func unbind(_ peripheral: DCPeripheral){
-//        if let mac = connectPeripheral?.mac ,peripheral.mac == mac{
-//            cancel()
-//        }
-//    }
-//}
-//
-//extension CCBleManager{
-//    func joySdkSend(_ data: Data, with characteristic: CBCharacteristic) {
-//        if let connectPeripheral = connectPeripheral{
-//            connectPeripheral.device.writeValue(data, for: characteristic, type:.withoutResponse)
-//        }
-//    }
-//}
-//
-//extension CCBleManager{
-//    func isConected(mac:String)->Bool{
-//        guard let device = connectPeripheral else { return false }
-//        if device.mac == mac {
-//            return isConnetd
-//        }
-//        else{
-//            return false
-//        }
-//    }
-//    
-//    //    #连接有问题,应当获取设置里面已连接的设备
-//    func connect(mac:String, finished:@escaping ((Bool) -> Void)){
-//        CCBleManager.shared.cancel()
-//        CCBleManager.shared.discoverDeviceCallback = { list in
-//            if list.count <= 0 {
-//                return
-//            }
-//            for item in list {
-//                if item.mac == mac {
-//                    CCBleManager.shared.connectPeripheral(item)
-//                    break
-//                }
-//            }
-//        }
-//        CCBleManager.shared.didConnectDeviceCallback = { device in
-//            finished(true)
-//        }
-//        CCBleManager.shared.conetedFailureCallback = {  device in
-//            finished(false)
-//        }
-//        CCBleManager.shared.startScanDevice()
-//    }
-//    
-//    func checkSettingsConnected()->[CBPeripheral]{
-//        if CCDevice.isJoy {
-////            let list = centralManager.retrieveConnectedPeripherals(withServices: [CBUUID(string: JoySdkManager.serviceUUID)])
-////            Logger.debug("已连接设备",list)
-////            return list
-//            return []
-//        }
-//        else{
-//            let list = centralManager.retrieveConnectedPeripherals(withServices: [CBUUID(string: DCBleManager.serviceUUID)])
-//            Logger.debug("已连接设备",list)
-//            return list
-//        }
-//    }
-//}
-//
-//extension CCBleManager{
-//    func checkConectState(){
-//        guard let mac = connectPeripheral?.mac else {
-//            return
-//        }
-//        if isConnetd {
-//            return
-//        }
-//        connect(mac: mac) {result in
-//        }
-//        
-//        DispatchQueue.main.asyncAfter(deadline:.now() + 10) {
-//            self.checkConectState()
-//        }
-//    }
-//}
diff --git a/ShenYin/ShenYin/Sdk/CCDevice.swift b/ShenYin/ShenYin/Sdk/CCDevice.swift
deleted file mode 100644 (file)
index c008fd7..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-//
-//  Device.swift
-//  ShenYin
-//
-//  Created by liangshi on 2025/12/25.
-//
-import JoyGemAI
-import DeepChordsSdk
-class CCDevice{
-    static var isJoy = true
-    static func initSdk(){
-        if CCDevice.isJoy {
-            JoySdkManager.shared.setupSdk()
-        }
-        else{
-            DcSdkManager.shared.initSdk()
-        }
-    }
-    static func translate(text:String,from:String,to:String,finished:@escaping ((stream:String,finish:Bool)?)->Void){
-        if isJoy {
-            JoyGemAIManager.shared().cancelTranslateRequest()
-            JoyGemAIManager.shared().translate(text, from: from, to: to) { result, finish in
-                finished((result,finish))
-            } error: { error in
-                finished(nil)
-            }
-        }
-        else{
-            DCText.cancelTranslateByTextWithSplit()
-            DCText.translate(text: text, from: from, to: to) { result in
-                finished(result)
-            }
-        }
-    }
-    static func summary(text:String,finished:@escaping ((stream:String,finish:Bool)?)->Void){
-        if isJoy {
-            JoyGemAIManager.shared().cancelSummaryRequest()
-            JoyGemAIManager.shared().summary(text) { text, finish in
-                finished((text,finish))
-            } error: { error in
-                finished(nil)
-            }
-        }
-        else{
-            DCText.cancelSummaryByTextWithSplit()
-            DCText.sumary(text: text) { result in
-                finished(result)
-            }
-        }
-    }
-}
-extension CCDevice{
-    static func findHeadphone(_ mode:FindType){
-        if CCDevice.isJoy {
-            var value:JoyGemFindHeadphoneMode = .all
-            switch mode {
-            case .left:
-                value = .left
-            case .right:
-                value = .right
-            case .cancel:
-                value = .cancel
-            case .all:
-                value = .all
-            }
-            JoyGemAIManager.shared().device.findHeadphone(value) { err in
-                Logger.debug("findHeadphone:\(err)");
-            }
-        }
-        else{
-            let value:UInt8 = mode == .cancel ? 0:1
-            DCDevice.shared.findDevice(state: value) { result in
-            }
-        }
-    }
-    static func getEQMode(finished:@escaping (ModeEffectsType?)->Void){
-        if CCDevice.isJoy {
-            JoyGemAIManager.shared().device.getEQMode { mode in
-                var value:ModeEffectsType = .normal
-                switch mode {
-                case .normal:
-                    value = .normal
-                case .pop:
-                    value = .pop
-                case .classic:
-                    value = .classic
-                case .rock:
-                    value = .rock
-                case .jazz:
-                    value = .jazz
-                case .custom:
-                    value = .custom
-                }
-                finished(value)
-            } error: { err in
-                Logger.debug("getEQMode:\(err)");
-                finished(nil)
-            }
-        }
-        else{
-            /// type, 0x00(正常模式)
-            //    0x01(流行)
-            //    0x02(经典)
-            //    0x03(爵士)
-            //    0x04(摇滚)
-            //    0x05(自定义)
-            DCDevice.shared.getEQ { (arg0,result) in
-                guard let (type,list) = arg0 else{
-                    finished(nil)
-                    return
-                }
-                switch type{
-                case 0:
-                    finished(.normal)
-                case 1:
-                    finished(.pop)
-                case 2:
-                    finished(.classic)
-                case 3:
-                    finished(.jazz)
-                case 4:
-                    finished(.rock)
-                case 5:
-                    finished(.custom)
-                default:
-                    finished(nil)
-                }
-            }
-        }
-    }
-    static func setEQMode(_ type:ModeEffectsType){
-        if CCDevice.isJoy {
-            var value:JoyGemEQMode = .normal
-            switch type {
-            case .normal:
-                value = .normal
-            case .pop:
-                value = .pop
-            case .classic:
-                value = .classic
-            case .rock:
-                value = .rock
-            case .jazz:
-                value = .jazz
-            case .custom:
-                value = .custom
-            }
-            
-            JoyGemAIManager.shared().device.setEQMode(value) { err in
-                Logger.debug("setEQMode:\(err)");
-            }
-        }else{
-            let value:UInt8 = UInt8(type.rawValue)
-            DCDevice.shared.setEQ(type: value) { success in
-                
-            }
-        }
-    }
-    
-    
-    static func getCustomEQ(finished:@escaping ([NSNumber]?)->Void){
-        if CCDevice.isJoy {
-            JoyGemAIManager.shared().device.getCustomEQ { eq in
-                Logger.debug("getCustomEQ:\(eq)");
-                finished(eq.bands)
-            } error: { err in
-                Logger.debug("getCustomEQ:\(err)");
-                finished(nil)
-            }
-        }
-        else{
-            DCDevice.shared.getEQ { (arg0,result) in
-                guard let (type,list) = arg0 else{
-                    finished(nil)
-                    return
-                }
-                if type == 5{
-                    let nums = list.map { NSNumber(value: $0) }
-                    finished(nums)
-                }
-                else{
-                    finished(nil)
-                }
-            }
-        }
-    }
-    static func resetCustomEQ(){
-        if CCDevice.isJoy {
-            JoyGemAIManager.shared().device.resetCustomEQ { err in
-                Logger.debug("resetCustomEQ:\(err)");
-            }
-        }
-        else{
-            let list = [
-                0,0,0,0,0,0,0,0,0,0,0,0
-            ]
-            let dispatchGroup = DispatchGroup()
-            for (index,item) in list.enumerated() {
-                dispatchGroup.enter()
-                DCDevice.shared.setCustomEQ(index: UInt8(index), value: item) {result in
-                    dispatchGroup.leave()
-                }
-            }
-            dispatchGroup.notify(queue:.main) {
-                DCDevice.shared.setEQ(type: 0x05) {result in
-                }
-            }
-        }
-    }
-    static func setCustomEQ(index:Int,value:Int){
-        if CCDevice.isJoy {
-            JoyGemAIManager.shared().device.setCustomEQ(UInt(index), withGain: value) { err in
-                Logger.debug("setCustomEQ:\(err)");
-            }
-        }
-        else{
-            DCDevice.shared.setCustomEQ(index: UInt8(index), value: value) {result in
-            }
-        }
-    }
-}
-extension CCDevice{
-//    static func getMac(finished:@escaping ((_ mac:String?)->Void)) {
-//        if CCDevice.isJoy {
-//            JoyGemAIManager.shared().device.macAddress { edr, ble in
-//                Logger.debug("edr:\(edr),ble:\(ble)");
-//                finished(edr.uppercased())
-//            } error: { error in
-//                Logger.debug("\(error!.localizedDescription)")
-//                finished(nil)
-//            }
-//        }
-//        else{
-////            DCDevice.shared.getSoftVersion {result in
-////                finished(result)
-////            }
-//        }
-//    }
-    static func getDN(finished:@escaping ((_ mac:String?)->Void)) {
-        if CCDevice.isJoy {
-            JoyGemAIManager.shared().device.getDN { deviceName in
-                finished(deviceName)
-            } error: { error in
-                Logger.debug("获取dn失败","\(error!.localizedDescription)")
-                finished(nil)
-            }
-        }
-        else{
-            let dn = DCText.getDeviceName()
-            finished(dn)
-        }
-    }
-    static func getVersion(finished:@escaping ((_ version:String?)->Void)) {
-        if CCDevice.isJoy {
-            JoyGemAIManager.shared().device.software { version in
-                finished(version)
-            } error: { error in
-                Logger.debug("\(error!.localizedDescription)");
-                finished(nil)
-            }
-        }
-        else{
-            DCDevice.shared.getSoftVersion {result in
-                finished(result)
-            }
-        }
-    }
-}
diff --git a/ShenYin/ShenYin/Sdk/CCPage.swift b/ShenYin/ShenYin/Sdk/CCPage.swift
deleted file mode 100644 (file)
index 3272eab..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-//  CCVCManager.swift
-//  ShenYin
-//
-//  Created by liangshi on 2025/12/26.
-//
-
-class CCPage{
-    static func gotoChat(){
-        if CCDevice.isJoy {
-//            App.shared.goToPage(JoyChatVC())
-        }
-        else{
-            App.shared.goToPage(DcChatVC())
-        }
-    }
-    static func gotoFieldRecord(){
-        if CCDevice.isJoy {
-//            App.shared.goToPage(JoyXclyVC())
-        }
-        else{
-            App.shared.goToPage(DcXclyVC())
-        }
-    }
-    static func gotoCallRecord(){
-        if CCDevice.isJoy {
-//            if JoySdkManager.shared.callRecord.supportStereo{
-//                App.shared.goToPage(JoyStereoCallVC())
-//            }
-//            else{
-//                App.shared.goToPage(JoyCallingRecordVC())
-//            }
-        }
-        else{
-//            if JoySdkManager.shared.callRecord.supportStereo{
-                App.shared.goToPage(DcStereoCallVC())
-//            }
-//            else{
-//                App.shared.goToPage(DcCallingRecordVC())
-//            }
-        }
-    }
-    static func gotoChinese2Enlgish(){
-        if CCDevice.isJoy {
-//            App.shared.goToPage(JoyChinese2EnglishVC())
-        }
-        else{
-            App.shared.goToPage(DcChinese2EnglishVC())
-        }
-    }
-    static func gotoTcty(){
-        if CCDevice.isJoy {
-//            App.shared.goToPage(JoyTctyVC())
-        }
-        else{
-            App.shared.goToPage(DcTctyVC())
-        }
-    }
-    static func gotoDialogTranslate(){
-        if CCDevice.isJoy {
-//            App.shared.goToPage(JoyDialogTranslateVC())
-        }
-        else{
-            App.shared.goToPage(DcDialogTranslateVC())
-        }
-    }
-}
index 667fbd4..cab0b1d 100644 (file)
@@ -75,6 +75,7 @@ class DcXclyVC:BaseVC{
     func setupSdk() {
         DcXcly.shared.recordFinish = {[weak self] path in
             guard let self = self else { return  }
+            rhythView.stopTimer()
             if !needSave {
                 return
             }
diff --git a/ShenYin/ShenYin/Sdk/DcSdk/tool/DcThly.swift b/ShenYin/ShenYin/Sdk/DcSdk/tool/DcThly.swift
deleted file mode 100644 (file)
index 8ca860a..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-////
-////  DcThly.swift
-////  ShenYin
-////
-////  Created by liangshi on 2025/12/29.
-////
-//
-//import UIKit
-//import DeepChordsSdk
-//
-//class DcThly:NSObject{
-//    static let shared = DcThly()
-//    
-//    var recordFinish:((String)->Void)?
-//    var recordNeedReloadData:((String)->Void)?
-//    var recordList : [(String,UInt)] = []
-//    var recordText = ""
-//    /// 状态码回调
-//    public var codeCallback:((Int)->Void)?
-//    public var callRecordNotOnCall:(()->Void)?
-//    
-//    
-//    override init() {
-//        super.init()
-//        setupSdk()
-//    }
-//    func setupSdk(){
-//        DCBleRecord.shared.asrCallback = { [weak self] text in
-//            guard let self = self else{return}
-//            recordText = text
-//            recordNeedReloadData?(text)
-//        }
-//        DCBleRecord.shared.codeCallback = { [weak self] code in
-//            guard let self = self else{return}
-//            codeCallback?(code)
-//        }
-//        DCBleRecord.shared.filePathCallBack = { [weak self] path in
-//            guard let self = self else{return}
-//            if recordText.isEmpty{
-//                return
-//            }
-//            OpusTools.opusTowav(path ?? "") {[weak self] wavPath in
-//                self?.recordFinish?(wavPath ?? "")
-//            }
-//        }
-//    }
-//    func setRecordLanage(_ language:CCAiLanguage){
-//        DCBleRecord.shared.fromLanguage = language.value
-//    }
-//    func recordStart(){
-//        recordList.removeAll()
-//        recordText = ""
-//        setupSdk()
-//        if !DcCall.shared.isInCall {
-//            callRecordNotOnCall?()
-//            return
-//        }
-//        Logger.debug("开启通话录音")
-//        DCBleRecord.shared.start(type: 0x00, recordPath: nil )
-//    }
-//    func recordStop(){
-//        DCBleRecord.shared.stop()
-//    }
-//}
index 7d4c30a..0878e9b 100644 (file)
@@ -68,6 +68,7 @@ class JoyXclyVC:BaseVC{
      func setupSdk() {
         JoySdkManager.shared.record.recordFinish = {[weak self] path in
             guard let self = self else { return  }
+            rhythView.stopTimer()
             if !needSave {
                 return
             }
index 39d4970..4ecbbfb 100644 (file)
@@ -114,6 +114,7 @@ extension CCBleManager:CBCentralManagerDelegate{
         YLprogressHUD.showAutoHiden("蓝牙已断开".l10n)
         self.isConnetd = false
         if CCDevice.isJoy{
+            JoySdkManager.shared.bleDisConnected()
         }
         else{
 //            DCBleManager.shared.centralManager(central, didDisconnectPeripheral: peripheral, error: nil)
index f61e054..8735333 100644 (file)
@@ -9,7 +9,7 @@ import Foundation
 
 /// 日记管理
 class Logger {
-    static var isDebug: Bool = false
+    static var isDebug: Bool = true
     
     fileprivate static let shared = Logger()
     private var fileHandle:FileHandle?