fix
无故事王国
2024-06-06 6f7f02d5c8880ff670b2c694fe61f5af5a6e3e36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//
//  StudyHandleView.swift
//  DolphinEnglishLearnStudent
//
//  Created by 无故事王国 on 2024/5/23.
//
 
import UIKit
import JQTools
import AVFoundation
 
class StudyHandleView: UIView,JQNibView{
                @IBOutlet weak var btn_choose: UIButton!
                @IBOutlet weak var view_choose: UIView!
                @IBOutlet weak var btn_state: UIButton!
                @IBOutlet weak var btn_voice: UIButton!
                @IBOutlet weak var btn_pay: UIButton!
 
                var listenType:ListenType?
                private var clouse:((UIButton)->Void)?
                private var playComplete:(()->Void)?
                private var playAtClouse:((Int)->Void)?
 
                private var voicePlayer = VoicePlayer.share()
                var vioceSoundUrl:String?
 
                override func awakeFromNib() {
                                super.awakeFromNib()
                                btn_state.alpha = 0
                                view_choose.alpha = 0
 
                                voicePlayer.playEnd {[weak self] in
                                                self?.reset()
                                }
                }
 
                func chooseClouse(callback:@escaping (UIButton)->Void){
                                clouse = callback
                }
 
                func playAt(_ clouse:@escaping(Int)->Void){
                                self.playAtClouse = clouse
                }
 
                func copyView()->StudyHandleView{
                                let copyV = StudyHandleView.jq_loadNibView()
                                copyV.bounds = self.bounds
                                return copyV
                }
 
                func reset(){
                                switch listenType {
                                                case .lesson1,.lesson5:
                                                                btn_state.setImage(UIImage(named: "icon_play"), for: .normal)
                                                                btn_voice.alpha = 1
                                                                btn_pay.alpha = 1
                                                                btn_state.alpha = 0
                                                case .lesson2:
                                                                view_choose.alpha = 1
                                                default:break
                                }
                                self.superview?.layoutIfNeeded()
                }
 
                @IBAction func payAction(_ sender: UIButton) {
                                guard let v = vioceSoundUrl else {return}
                                voicePlayer.playerAt(url: v)
                                playAtClouse?(self.tag)
                                switch listenType {
                                                case .lesson1,.lesson5:
                                                                btn_state.setImage(UIImage(named: "icon_playing"), for: .normal)
                                                                btn_voice.alpha = 0
                                                                btn_pay.alpha = 0
                                                                btn_state.alpha = 1
                                                case .lesson2:
                                                                view_choose.alpha = 1
                                                default:break
                                }
                }
 
                @IBAction func chooseAction(_ sender: UIButton) {
                                sender.isSelected = !sender.isSelected
                                clouse?(sender)
                }
}