杨锴
3 天以前 876bce3064536c036112dd1834fb0d0013a57d16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//
//  StudyHandleView.swift
//  DolphinEnglishLearnStudent
//
//  Created by 无故事王国 on 2024/5/23.
//
 
import UIKit
import JQTools
import AVFoundation
 
class StudyHandleView: UIView,JQNibView{
    @IBOutlet weak var view_container: UIView!
    @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)?
 
                var voicePlayer = VoicePlayer.share()
                var vioceSoundUrl:String?
    var isplayend:Bool = false
 
                override func awakeFromNib() {
                                super.awakeFromNib()
                                btn_state.alpha = 0
                                view_choose.alpha = 0
        alpha = 0
 
        btn_voice.setImage(UIImage(named: "icon_play_1"), for: .normal)
        btn_pay.setImage(UIImage(named: "icon_play"), for: .normal)
        view_container.backgroundColor = .white
 
        btn_choose.setImage(UIImage(named: "btn_radio_u"), for: .normal)
        btn_choose.setImage(UIImage(named: "btn_radio"), for: .selected)
                }
 
                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
                                copyV.tag = self.tag
                                copyV.vioceSoundUrl = self.vioceSoundUrl
                                return copyV
                }
 
                func resetView(){
                                switch listenType {
                                                case .lesson1,.lesson5,.game1:
                                                                UIView.animate(withDuration: 0.25) {
                    self.btn_state.setImage(UIImage(named: "icon_play"), for: .normal)
                                                                                self.btn_voice.alpha = 1
                                                                                self.btn_pay.alpha = 1
                                                                                self.btn_state.alpha = 0
                                                                }
                                                case .lesson2:
                                                                UIView.animate(withDuration: 0.25) {
                                                                                self.btn_state.setImage(UIImage(named: "icon_play"), for: .normal)
                                                                                self.btn_voice.alpha = 1
                                                                                self.btn_pay.alpha = 1
                                                                                self.btn_state.alpha = 0
                                                                                self.view_choose.alpha = 1
                                                                }
                                                default:break
                                }
                }
 
                func isplaying(){
        isplayend = true
        alpha =  1
                                switch listenType {
                                                case .lesson1,.lesson5,.game1:
                                                                UIView.animate(withDuration: 0.25) {
                                                                                self.btn_state.setImage(UIImage(named: "icon_playing")?.themeGreen, for: .normal)
                                                                                self.btn_voice.alpha = 0
                                                                                self.btn_pay.alpha = 0
                                                                                self.btn_state.alpha = 1
                                                                }
                                                                break
                                                case .lesson2:
                                                                UIView.animate(withDuration: 0.25) {
                                                                                self.btn_state.setImage(UIImage(named: "icon_playing")?.themeGreen, for: .normal)
                                                                                self.btn_voice.alpha = 0
                                                                                self.btn_pay.alpha = 0
                                                                                self.btn_state.alpha = 1
                                                                                self.view_choose.alpha = 1
                                                                }
 
                                                default:break
                                }
                }
 
                @IBAction func payAction(_ sender: UIButton) {
                                guard let v = vioceSoundUrl else {return}
                                voicePlayer.playerAt(url: v)
                                playAtClouse?(self.tag)
                                isplaying()
 
                }
 
                @IBAction func chooseAction(_ sender: UIButton) {
                                sender.isSelected = !sender.isSelected
                                clouse?(sender)
                }
}