无故事王国
2025-08-10 9d8138cb1690c4c1990535d0507eb17cdbe497f9
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_3_VC.swift
@@ -42,8 +42,8 @@
    private var playIndex = Set<IndexPath>() //顺序播放
    private var isPlayingIndex:IndexPath? //正在播放中
    private var islisten:Bool = false
    private var handleClouse:(()->Void)?
    private var jumpFormRest:Bool = false //重新答题
    required init(page:Int,listenNewModel:ListenNewModel){
        super.init(nibName: nil, bundle: nil)
@@ -80,7 +80,15 @@
                DispatchQueue.main.asyncAfter(deadline: .now()+1) {
                    self.restore()
                    self.isPlayingIndex = IndexPath(row: 0, section: 0)
                    self.voicePlayer.playerAt(url: self.listenNewModel.subjectList[self.page][0].correct)
                    if self.jumpFormRest{
                        if self.page == 0{
                            self.voicePlayer.playerAt(url: self.listenNewModel.subjectList[self.page][0].correct)
                        }
                        self.jumpFormRest.toggle()
                    }else{
                        self.voicePlayer.playerAt(url: self.listenNewModel.subjectList[self.page][0].correct)
                    }
                }
            }
        }).disposed(by: disposeBag)
@@ -139,6 +147,7 @@
    override func setRx() {
        NotificationCenter.default.rx.notification(ResetLession_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self]_ in
            self?.jumpFormRest = true
            self?.restore()
            self?.viewDidLoad()
        }).disposed(by: disposeBag)
@@ -239,9 +248,9 @@
            case 3:isPlayingIndex = IndexPath(row: 2, section: 1)
            default:break
            }
            let index = self.isPlayingIndex!.section * 3 + self.isPlayingIndex!.row
            _ = self.isPlayingIndex!.section * 3 + self.isPlayingIndex!.row
            let model = listenNewModel.list[index]
            let model = listenNewModel.list[self.page]
            model.status = 2
            Services.answerQuestion(id: model.id, status: 2).subscribe(onNext: {_ in
                self.handleClouse?()
@@ -323,7 +332,6 @@
                subV?.btn_fullscreen.alpha = 0
            }completion: { _ in
                DispatchQueue.main.asyncAfter(deadline: .now()+1.5) {
                    self.islisten  = false
                    for v in self.stackView.arrangedSubviews{
                        v.removeFromSuperview()
                    }
@@ -468,7 +476,6 @@
    func playComplete() {
        view.isUserInteractionEnabled = true
        islisten  = true
        //1
        if isPlayingIndex?.section == 0 && isPlayingIndex?.row == 0{
@@ -488,6 +495,11 @@
            playIndex.insert(isPlayingIndex!)
            collectionView.reloadData()
            self.setAnswerStackView()
            DispatchQueue.main.asyncAfter(delay: 1.0) {
                self.isPlayingIndex = nil
                self.collectionView.reloadData()
            }
            return
        }
@@ -513,6 +525,13 @@
            isPlayingIndex?.row += 1
            playIndex.insert(isPlayingIndex!)
            collectionView.reloadData()
            DispatchQueue.main.asyncAfter(delay: 1.0) {
                self.isPlayingIndex = nil
                self.collectionView.reloadData()
            }
            return
        }
@@ -524,6 +543,11 @@
                self.voicePlayer.playerAt(url: self.listenNewModel.subjectList[self.page][index].correct)
                playIndex.insert(isPlayingIndex!)
                collectionView.reloadData()
                DispatchQueue.main.asyncAfter(delay: 1.0) {
                    self.isPlayingIndex = nil
                    self.collectionView.reloadData()
                }
                return
            }
            self.setAnswerStackView()
@@ -536,12 +560,17 @@
                NotificationCenter.default.post(name: NextLession_Noti, object: nil)
                return
            }
            DispatchQueue.main.asyncAfter(delay: 1.0) {
                self.isPlayingIndex = nil
                self.collectionView.reloadData()
            }
            self.setAnswerStackView()
        }
    }
    func playing() {
        islisten = false
        view.isUserInteractionEnabled = false
    }
}