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