//
|
// 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)
|
}
|
}
|