| | |
| | | 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) |
| | |
| | | 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) |
| | |
| | | |
| | | 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) |
| | |
| | | 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?() |
| | |
| | | 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() |
| | | } |
| | |
| | | |
| | | func playComplete() { |
| | | view.isUserInteractionEnabled = true |
| | | islisten = true |
| | | |
| | | //1 |
| | | if isPlayingIndex?.section == 0 && isPlayingIndex?.row == 0{ |
| | |
| | | playIndex.insert(isPlayingIndex!) |
| | | collectionView.reloadData() |
| | | self.setAnswerStackView() |
| | | |
| | | DispatchQueue.main.asyncAfter(delay: 1.0) { |
| | | self.isPlayingIndex = nil |
| | | self.collectionView.reloadData() |
| | | } |
| | | return |
| | | } |
| | | |
| | |
| | | isPlayingIndex?.row += 1 |
| | | playIndex.insert(isPlayingIndex!) |
| | | collectionView.reloadData() |
| | | |
| | | |
| | | DispatchQueue.main.asyncAfter(delay: 1.0) { |
| | | self.isPlayingIndex = nil |
| | | self.collectionView.reloadData() |
| | | } |
| | | |
| | | return |
| | | } |
| | | |
| | |
| | | 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() |
| | |
| | | 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 |
| | | } |
| | | } |