From: liangzhenying <867174124@qq.com> Date: Fri, 20 Mar 2026 10:20:10 +0000 (+0800) Subject: 字幕翻译优化 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=3664a8e232c23f4818f23e7cd836d9c4919190ee;p=mirrors%2FShenYin.git 字幕翻译优化 --- diff --git a/ShenYin/DeepChordsSdk/DCBleRecord.swift b/ShenYin/DeepChordsSdk/DCBleRecord.swift index 73fe130..04596ef 100644 --- a/ShenYin/DeepChordsSdk/DCBleRecord.swift +++ b/ShenYin/DeepChordsSdk/DCBleRecord.swift @@ -92,7 +92,7 @@ public class DCBleRecord { asrCallback?(asrText) } if let translate = model.translateResult,let text = translate.text,!text.isEmpty{ - DCLogger.debug("translate = \(text)") +// DCLogger.debug("translate = \(text)") translateSplitCallback?(DCAsrModel(text: text, index: Int(translate.definiteIndex), definite: translate.definite)) let msg = translateList.firstIndex (where: { (str,idx) in return idx == translate.definiteIndex; diff --git a/ShenYin/ShenYin/Channel/DeepChords/Channel/Config/CCPage.swift b/ShenYin/ShenYin/Channel/DeepChords/Channel/Config/CCPage.swift index 4545195..a24b989 100644 --- a/ShenYin/ShenYin/Channel/DeepChords/Channel/Config/CCPage.swift +++ b/ShenYin/ShenYin/Channel/DeepChords/Channel/Config/CCPage.swift @@ -66,15 +66,15 @@ class CCPage{ } } static func gotoSubTitle(){ - if CCConfig.sdkType == .joy{ + if CCConfig.sdkType == .lianJuXing{ if #available(iOS 15.0, *) { - App.shared.goToPage(JoySubTitleVC()) + App.shared.goToPage(PbSubTitleVC()) } else { // Fallback on earlier versions } } else{ - + YLprogressHUD.showAutoHiden("当前设备不支持字幕翻译") } } } diff --git a/ShenYin/ShenYin/Channel/DeepChords/Channel/UI/JoyAiFunctionVC.swift b/ShenYin/ShenYin/Channel/DeepChords/Channel/UI/JoyAiFunctionVC.swift index 2b0550a..c870bc7 100644 --- a/ShenYin/ShenYin/Channel/DeepChords/Channel/UI/JoyAiFunctionVC.swift +++ b/ShenYin/ShenYin/Channel/DeepChords/Channel/UI/JoyAiFunctionVC.swift @@ -84,7 +84,10 @@ class JoyAiFunctionVC:BaseVC{ } } @objc func subTitleAction(){ - CCPage.gotoSubTitle() + if CCBleManager.shared.isConected(mac: device.mac){ + CCPage.gotoSubTitle() + } + } } diff --git a/ShenYin/ShenYin/Channel/PLAYBOY/Channel/UI/PbSubTitleVC.swift b/ShenYin/ShenYin/Channel/PLAYBOY/Channel/UI/PbSubTitleVC.swift index 98b7a09..0ca36d3 100644 --- a/ShenYin/ShenYin/Channel/PLAYBOY/Channel/UI/PbSubTitleVC.swift +++ b/ShenYin/ShenYin/Channel/PLAYBOY/Channel/UI/PbSubTitleVC.swift @@ -29,21 +29,13 @@ class PbSubTitleVC: BaseVC { languageItem.leftLabel.language = cache.lan_form languageItem.rightLabel.language = cache.lan_to } - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - - } - override func viewDidDisappear(_ animated: Bool) { - super.viewDidDisappear(animated) - sdk.stopEarRecord() - } + override func setupViews() { view.backgroundColor = .color(.bgColor) navBar.do { v in v.addSubview(languageItem) v.rightView.isHidden = false -// v.rightView.setImage(UIImage(named: "set_right"), for: .normal) - navBar.rightView.setImage(UIImage(named: "help_icon"), for: .normal) + v.rightView.setImage(UIImage(named: "set_right"), for: .normal) } view.addSubviews([toolBar,tableView]) @@ -54,11 +46,13 @@ class PbSubTitleVC: BaseVC { v.rightItem.isHidden = true } languageItem.do { v in - v.languageChange = { (from,to) in + v.languageChange = {[weak self] (from,to) in + guard let self = self else{return} let cache = SubTitleCache.shared.get() cache.lan_form = from cache.lan_to = to SubTitleCache.shared.save(cache) + restart() } } tableView.do { v in @@ -76,7 +70,7 @@ class PbSubTitleVC: BaseVC { // make.size.equalTo(10) // make.center.equalToSuperview() // } - pipManager.setupPictureInPicture(soureceView: self.view) + pipManager.setupPictureInPicture(soureceView: self.navigationController!.view) } override func setupLayout() { languageItem.snp.makeConstraints { make in @@ -115,10 +109,18 @@ class PbSubTitleVC: BaseVC { } override func navRightViewTapped() { - if !languageItem.enable { - return - } let vc = SubTitleSetVC() + vc.languageChanged = {[weak self] in + guard let self = self else{return} + let cache = SubTitleCache.shared.get() + languageItem.leftLabel.language = cache.lan_form + languageItem.rightLabel.language = cache.lan_to + restart() + } + vc.soureChanged = {[weak self] in + guard let self = self else{return} + restart() + } App.shared.goToPage(vc) } @@ -144,26 +146,29 @@ class PbSubTitleVC: BaseVC { } } } + func restart(){ + sdk.stopEarRecord() + DispatchQueue.main.asyncAfter(deadline:.now() + 1) { + Logger.debug("延迟2秒后执行") + self.sdk.startEarRecord(from: self.languageItem.leftLabel.language, to: self.languageItem.rightLabel.language) + } + + } } @available(iOS 15.0, *) extension PbSubTitleVC:RecordBarDelegate{ func recordBarLanguageChange(_ bar: RecordBar) { - sdk.stopEarRecord() sdk.startEarRecord(from: languageItem.leftLabel.language, to: languageItem.rightLabel.language) } func recordBar(_ bar: RecordBar, stateChange state: RecordBarSate) { if state == .start { sdk.startEarRecord(from: languageItem.leftLabel.language, to: languageItem.rightLabel.language) - languageItem.enable = false - navBar.rightView.alpha = 0.5 } else if state == .stop{ sdk.stopEarRecord() - languageItem.enable = true - navBar.rightView.alpha = 1 } } } diff --git a/ShenYin/ShenYin/Channel/PLAYBOY/Sdk/DcSdkManager.swift b/ShenYin/ShenYin/Channel/PLAYBOY/Sdk/DcSdkManager.swift index e4fe6fc..facef88 100644 --- a/ShenYin/ShenYin/Channel/PLAYBOY/Sdk/DcSdkManager.swift +++ b/ShenYin/ShenYin/Channel/PLAYBOY/Sdk/DcSdkManager.swift @@ -14,7 +14,7 @@ class DcSdkManager{ func initSdk(){ DcCall.shared.start() DCSdk.shared.initSDK() - DCLogger.isDebug = false + DCLogger.isDebug = true DCSdk.shared.authCallback = {[weak self] (code,msg)in DCLogger.debug(code,msg) guard let self = self else{return} diff --git a/ShenYin/ShenYin/Channel/PLAYBOY/Sdk/DcSubTitle.swift b/ShenYin/ShenYin/Channel/PLAYBOY/Sdk/DcSubTitle.swift index 388e0f4..683acaf 100644 --- a/ShenYin/ShenYin/Channel/PLAYBOY/Sdk/DcSubTitle.swift +++ b/ShenYin/ShenYin/Channel/PLAYBOY/Sdk/DcSubTitle.swift @@ -49,15 +49,12 @@ class DcSubTitle:NSObject{ // DCBleRecord.shared.translateDataCallback = { data in // PcmSound.sharedInstance().feed(data) // } -// DCBleRecord.shared.codeCallback = { [weak self] code in -// guard let self = self else{return} -// if code == 20002 || code == 20003{ -// if let model = dataList.last,model.send.isEmpty{ -// dataList.removeLast() -// refreshData() -// } -// } -// } + DCBleRecord.shared.codeCallback = { [weak self] code in + guard let self = self else{return} + if code == 20002 || code == 20003{ + Logger.debug("录音停止") + } + } DCBleRecord.shared.filePathCallBack = { [weak self] path in guard let self = self else{return} // self.recordBtn.isSelected = false @@ -67,7 +64,7 @@ class DcSubTitle:NSObject{ func startEarRecord(from:CCAiLanguage,to:CCAiLanguage) { recording = true - dataList.removeAll() + dataList.removeAll()//字幕闪退 recordNeedReloadData?() DCBleRecord.shared.fromLanguage = from.value diff --git a/ShenYin/ShenYin/UI/Home/SubTitle/PipContentVC.swift b/ShenYin/ShenYin/UI/Home/SubTitle/PipContentVC.swift index 62363ef..93687ac 100644 --- a/ShenYin/ShenYin/UI/Home/SubTitle/PipContentVC.swift +++ b/ShenYin/ShenYin/UI/Home/SubTitle/PipContentVC.swift @@ -98,7 +98,7 @@ class PipContentVC : AVPictureInPictureVideoCallViewController { override func viewDidLoad() { super.viewDidLoad() view.addSubviews([textView,translateTextView]) - view.backgroundColor = .rgb(0x717171) + view.backgroundColor = .black reset() } diff --git a/ShenYin/ShenYin/UI/Home/SubTitle/SubTitleSetVC.swift b/ShenYin/ShenYin/UI/Home/SubTitle/SubTitleSetVC.swift index 9f72411..cf9f7a8 100644 --- a/ShenYin/ShenYin/UI/Home/SubTitle/SubTitleSetVC.swift +++ b/ShenYin/ShenYin/UI/Home/SubTitle/SubTitleSetVC.swift @@ -10,6 +10,8 @@ class SubTitleSetVC: BaseVC{ let tableView = UITableView(frame: .zero, style: .plain) var list:[SubTitleSetCellType] = [.language,.soure,.showType,.font] let imgPicker = ImagePickerManager() + var languageChanged:(()->Void)? + var soureChanged:(()->Void)? override func viewDidLoad() { super.viewDidLoad() @@ -89,6 +91,7 @@ extension SubTitleSetVC{ SubTitleCache.shared.save(cache) tableView.reloadData() + languageChanged?() } } @@ -103,6 +106,7 @@ extension SubTitleSetVC{ cache.sourceType = list.first(where: {$0.title == value})! SubTitleCache.shared.save(cache) tableView.reloadData() + soureChanged?() } } @objc func showTypeAction(){ diff --git a/ShenYin/ShenYin/UI/common/pop/LanguagePicker/LanguageSelectItem.swift b/ShenYin/ShenYin/UI/common/pop/LanguagePicker/LanguageSelectItem.swift index 6ce55dd..cd1f0d2 100644 --- a/ShenYin/ShenYin/UI/common/pop/LanguagePicker/LanguageSelectItem.swift +++ b/ShenYin/ShenYin/UI/common/pop/LanguagePicker/LanguageSelectItem.swift @@ -12,11 +12,11 @@ class LanguageSelectItem: BaseView { let switcIcon = UIImageView() var languageChange:((_ from:CCAiLanguage,_ to:CCAiLanguage)->Void)? - var enable:Bool = true{ - didSet{ - self.alpha = enable ? 1:0.5 - } - } +// var enable:Bool = true{ +// didSet{ +// self.alpha = enable ? 1:0.5 +// } +// } override func setupViews() { addSubviews([bottonView]) @@ -64,9 +64,9 @@ class LanguageSelectItem: BaseView { } } @objc func switchAction(){ - if !enable { - return - } +// if !enable { +// return +// } let text1 = leftLabel.language let text2 = rightLabel.language leftLabel.language = text2 @@ -76,9 +76,9 @@ class LanguageSelectItem: BaseView { languageChange?(leftLabel.language,rightLabel.language) } @objc func leftAction(){ - if !enable { - return - } +// if !enable { +// return +// } let v = LanguagePickerView(languages: CCAiLanguage.all,isLeft: true,left: leftLabel.language,right: rightLabel.language) v.selectedIndex = v.list.firstIndex(where: {$0.title == leftLabel.language.title}) ?? 0 v.show() @@ -96,9 +96,9 @@ class LanguageSelectItem: BaseView { } } @objc func rightAction(){ - if !enable { - return - } +// if !enable { +// return +// } let v = LanguagePickerView(languages: CCAiLanguage.all,isLeft: false,left: leftLabel.language,right: rightLabel.language) v.selectedIndex = v.list.firstIndex(where: {$0.title == rightLabel.language.title}) ?? 0 v.show()