From b1e53d01722f1705d99f5cf6ec63c8c493811405 Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期五, 13 九月 2024 18:56:16 +0800
Subject: [PATCH] fix API

---
 XQMuse/Root/Other/View/VideoView.swift |   66 ++++++++++++++++++++++++++++-----
 1 files changed, 56 insertions(+), 10 deletions(-)

diff --git a/XQMuse/Root/Other/View/VideoView.swift b/XQMuse/Root/Other/View/VideoView.swift
index 6ad8734..930adee 100644
--- a/XQMuse/Root/Other/View/VideoView.swift
+++ b/XQMuse/Root/Other/View/VideoView.swift
@@ -14,8 +14,9 @@
 
 				private var url:String?
 				private var disposeBag = DisposeBag()
+				private var placeHoderImageUrl:String?
 
-				private lazy var player: CLPlayer = {
+				private(set) lazy var player: CLPlayer = {
 								let p = CLPlayer(frame: .zero) { config in
 												config.topBarHiddenStyle = .always
 												config.isHiddenMorePanel = true
@@ -31,28 +32,73 @@
 								return p
 				}()
 
-				required	init(url:String) {
+				required	init(url:String? = nil,autoPlay:Bool = false,placeHoderImageUrl:String? = nil) {
 								super.init(frame: .zero)
-								self.url = url
+								addSubview(player)
+								player.delegate = self
+								player.snp.makeConstraints { make in
+												make.edges.equalToSuperview()
+								}
+								self.placeHoderImageUrl = placeHoderImageUrl
+								if placeHoderImageUrl != nil{
+												addPlaceHoderView(placeHoderImage: placeHoderImageUrl!)
+								}
+
 								if let Url = URL(string: url){
+												self.url = url
 												player.url = Url
-												addSubview(player)
-												player.delegate = self
-												player.snp.makeConstraints { make in
-																make.edges.equalToSuperview()
+												if autoPlay{
+																player.play()
 												}
-												player.play()
 								}
 				}
 
 
-				func updateVideoUrl(_ url:String){
+				func updateVideoUrl(_ url:String,autoPlay:Bool = false,placeHoderImageUrl:String? = nil){
+
+								self.placeHoderImageUrl = placeHoderImageUrl
+								if placeHoderImageUrl != nil{
+												addPlaceHoderView(placeHoderImage: placeHoderImageUrl!)
+								}
+
 								if let Url = URL(string: url){
 												player.url = Url
-												player.play()
+												if autoPlay{
+																player.play()
+												}
 								}
 				}
 
+				private func addPlaceHoderView(placeHoderImage:String){
+								let placeV = UIView()
+								placeV.backgroundColor = .black
+								placeV.frame = player.frame
+
+								let imageView = UIImageView()
+								imageView.sd_setImage(with: URL(string: placeHoderImage))
+								imageView.contentMode = .scaleAspectFill
+								placeV.addSubview(imageView)
+								imageView.frame = player.frame
+
+								let btn_placeholder = UIButton(type: .custom)
+								btn_placeholder.setImage(UIImage(named: "icon_play"), for: .normal)
+								btn_placeholder.addTarget(self, action: #selector(continueVideo), for: .touchUpInside)
+								placeV.addSubview(btn_placeholder)
+								btn_placeholder.snp.makeConstraints { make in
+												make.center.equalToSuperview()
+								}
+
+								player.placeholder = placeV
+				}
+
+				func pauseVideo(){
+								player.pause()
+				}
+
+				@objc func continueVideo(){
+								player.play()
+				}
+
 				required init?(coder: NSCoder) {
 								fatalError("init(coder:) has not been implemented")
 				}

--
Gitblit v1.7.1