//
|
// CourseDetialVideoVC.swift
|
// XQMuse
|
//
|
// Created by 无故事王国 on 2024/8/19.
|
//
|
|
import UIKit
|
import JQTools
|
|
class CourseDetialVideoVC: BaseVC {
|
|
@IBOutlet weak var view_bg_video: UIView!
|
@IBOutlet weak var tableView: UITableView!
|
|
private var videoView:VideoView?
|
private var items = [CourseItemModel]()
|
private var selectIndex:IndexPath!
|
private var secondLook:Int = 0
|
private var isOver:Bool = false
|
|
override func viewWillAppear(_ animated: Bool) {
|
super.viewWillAppear(animated)
|
(navigationItem.leftBarButtonItem?.customView as? UIButton)?.setImage(UIImage(named: "btn_back")?.withTintColor(.white), for: .normal)
|
}
|
|
required init(items:[CourseItemModel],selectIndex:IndexPath) {
|
super.init(nibName: nil, bundle: nil)
|
self.items = items
|
self.selectIndex = selectIndex
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidDisappear(_ animated: Bool) {
|
super.viewDidDisappear(animated)
|
let item = items[selectIndex.row]
|
|
guard secondLook > 0 else {return}
|
Services.watchClouse(chapterId: item.id, isOver: isOver, secondLook: secondLook).subscribe(onNext: { _ in
|
|
}).disposed(by: disposeBag)
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
title = "课程详情"
|
|
videoView = VideoView(url: items[selectIndex.row].videoUrl.jq_urlEncoded(),delegate: self)
|
videoView?.player.play()
|
view_bg_video.addSubview(videoView!)
|
videoView!.snp.makeConstraints { make in
|
make.edges.equalToSuperview()
|
}
|
|
tableView.separatorStyle = .none
|
tableView.delegate = self
|
tableView.dataSource = self
|
tableView.showsVerticalScrollIndicator = false
|
if #available(iOS 15.0, *) {
|
tableView.sectionHeaderTopPadding = 0
|
}
|
tableView.register(UINib(nibName: "CourseDetail_2_Inner_TCell", bundle: nil), forCellReuseIdentifier: "_CourseDetail_2_Inner_TCell")
|
}
|
|
override var preferredStatusBarStyle: UIStatusBarStyle{
|
return .lightContent
|
}
|
}
|
|
extension CourseDetialVideoVC:UITableViewDataSource{
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
return items.count
|
}
|
|
func numberOfSections(in tableView: UITableView) -> Int {
|
return 1
|
}
|
|
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
return 69.5
|
}
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseDetail_2_Inner_TCell") as! CourseDetail_2_Inner_TCell
|
|
cell.setModel(items[indexPath.row], index: indexPath)
|
|
if items[indexPath.row].isOver == .yes{
|
cell.btn_study.setTitle("已学习", for: .normal)
|
cell.btn_study.backgroundColor = UIColor(hexString: "#CDCDCD")
|
}else{
|
cell.btn_study.setTitle("去学习", for: .normal)
|
cell.btn_study.backgroundColor = UIColor(hexString: "#8AAE65")
|
}
|
|
if indexPath.row == selectIndex.row{
|
cell.btn_study.setTitle("正在学习", for: .normal)
|
cell.btn_study.backgroundColor = UIColor(hexString: "#E3B25C")
|
}
|
return cell
|
}
|
}
|
|
extension CourseDetialVideoVC:UITableViewDelegate{
|
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
|
if selectIndex == indexPath{return}
|
|
selectIndex = indexPath
|
videoView?.updateVideoUrl(items[indexPath.row].videoUrl.jq_urlEncoded())
|
tableView.reloadData()
|
}
|
}
|
|
extension CourseDetialVideoVC:CLPlayerDelegate{
|
func player(_ player: CLPlayer, playProgressChanged value: CGFloat) {
|
secondLook = player.currentDuration.int
|
print("视频播放进度:\(player.currentDuration.int)")
|
}
|
|
func didPlayToEnd(in player: CLPlayer) {
|
isOver = true
|
print("视频播放进度:【完成】")
|
}
|
}
|