younger_times
2023-07-26 3e3bfd1ad307ec2ea42f66e298ccb24cec26955f
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
118
119
120
121
122
123
124
125
//
//  CourseVideoDetailVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/16.
//
 
import UIKit
import AVKit
import SDWebImage
import JQTools
 
class CourseVideoDetailVC: BaseVC {
    @IBOutlet weak var view_videoContainer: UIView!
 
    private var id:Int?
    private var model:ExerciseVideoModel?
 
    @IBOutlet weak var label_name: UILabel!
    @IBOutlet weak var label_introduce: UILabel!
    @IBOutlet weak var label_studyState: UILabel!
    @IBOutlet weak var img_introduceCover: UIImageView!
    @IBOutlet weak var label_coin: UILabel!
    @IBOutlet weak var cons_imgHei: NSLayoutConstraint!
 
 
    private lazy var playerVC:AVPlayerViewController = {
        let player = AVPlayerViewController()
        player.allowsPictureInPicturePlayback = true
        player.delegate = self
        return player
    }()
 
 
   init(id:Int) {
        super.init(nibName: nil, bundle: nil)
        self.id = id
    }
 
    init(model:ExerciseVideoModel){
        super.init(nibName: nil, bundle: nil)
        self.model = model
    }
 
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
 
    override func viewDidLoad() {
        super.viewDidLoad()
 
        if let id {
            Services.benefitsVideoDetail(id: id).subscribe(onNext: { [weak self] data in
                if let model = data.data{
                    self?.playerVC.player = AVPlayer(url: URL(string: model.courseVideo)!)
                    self?.playerVC.player?.play()
 
                    self?.label_name.text = model.name
                    self?.label_coin.text = "\(model.integral)积分"
                    self?.label_introduce.text = model.introduce
                    if model.study == 1{
                        self?.label_studyState.text = "已学习"
                        self?.label_studyState.backgroundColor = UIColor(hexStr: "#318C10").withAlphaComponent(0.29)
                        self?.label_studyState.textColor = UIColor(hexStr: "#318C10")
                    }else{
                        self?.label_studyState.text = "未学习"
                        self?.label_studyState.backgroundColor = UIColor(hexStr: "#FD9331").withAlphaComponent(0.29)
                        self?.label_studyState.textColor = Def_ThemeColor
                    }
 
                    SDWebImageDownloader.shared.downloadImage(with: URL(string: model.introductionDrawing)) { image, data, error, state in
                        if let img = image{
                            self?.img_introduceCover.image = img
                            let radio = img.size.width / img.size.height
                            self?.cons_imgHei.constant = JQ_ScreenW * radio
                        }
                    }
                }
            }).disposed(by: disposeBag)
        }
 
        if let model{
            Services.exerciseCourseDetail(coursePackageId: model.coursePackageId, videoId: model.videoId).subscribe(onNext: {[weak self] data in
                if let model = data.data{
                    self?.playerVC.player = AVPlayer(url: URL(string: model.videoURL)!)
                    self?.playerVC.player?.play()
 
                    self?.label_name.text = model.packageName
                    self?.label_coin.text = "\(model.integral)积分"
                    self?.label_introduce.text = model.synopsis
                    if model.studyStatus == 1{
                        self?.label_studyState.text = "已学习"
                        self?.label_studyState.backgroundColor = UIColor(hexStr: "#318C10").withAlphaComponent(0.29)
                        self?.label_studyState.textColor = UIColor(hexStr: "#318C10")
                    }else{
                        self?.label_studyState.text = "未学习"
                        self?.label_studyState.backgroundColor = UIColor(hexStr: "#FD9331").withAlphaComponent(0.29)
                        self?.label_studyState.textColor = Def_ThemeColor
                    }
 
                    SDWebImageDownloader.shared.downloadImage(with: URL(string: model.detailedDiagram)) { image, data, error, state in
                        if let img = image{
                            self?.img_introduceCover.image = img
                            let radio = img.size.width / img.size.height
                            self?.cons_imgHei.constant = JQ_ScreenW * radio
                        }
                    }
                }
            }).disposed(by: disposeBag)
        }
    }
 
    override func setUI() {
        view_videoContainer.addSubview(playerVC.view)
        playerVC.view.frame = view_videoContainer.frame
        self.addChild(playerVC)
        playerVC.didMove(toParent: self)
 
    }
}
 
 
extension CourseVideoDetailVC:AVPlayerViewControllerDelegate{
 
}