From e86e19e5e5909f46e09adec1df430e0214a81590 Mon Sep 17 00:00:00 2001 From: 无故事王国 <841720330@qq.com> Date: 星期三, 18 十月 2023 18:34:19 +0800 Subject: [PATCH] 修复BUG --- WanPai/Root/Games/View/GamesIntruduceView.swift | 81 ++++++++++++++++++++++++++++++---------- 1 files changed, 60 insertions(+), 21 deletions(-) diff --git a/WanPai/Root/Games/View/GamesIntruduceView.swift b/WanPai/Root/Games/View/GamesIntruduceView.swift index ee6d037..376e51e 100644 --- a/WanPai/Root/Games/View/GamesIntruduceView.swift +++ b/WanPai/Root/Games/View/GamesIntruduceView.swift @@ -1,19 +1,23 @@ -// -// GamesIntruduceView.swift -// WanPai -// -// Created by 无故事王国 on 2023/9/15. -// + // + // GamesIntruduceView.swift + // WanPai + // + // Created by 无故事王国 on 2023/9/15. + // import UIKit import JQTools +import AVKit class GamesIntruduceView: UIView,JQNibView{ @IBOutlet weak var img_profile: UIImageView! @IBOutlet weak var label_content: UILabel! @IBOutlet weak var view_container: UIView! - + @IBOutlet weak var btn_play: UIButton! + + private var videoUrl:String? + override func awakeFromNib() { super.awakeFromNib() view_container.transform = CGAffineTransform(scaleX: 0.1, y: 0.1) @@ -21,27 +25,62 @@ layoutIfNeeded() } - static func show(){ + static func show(url:String,content:String){ let intruduceView = GamesIntruduceView.jq_loadNibView() intruduceView.frame = sceneDelegate?.window?.frame ?? .zero sceneDelegate?.window?.addSubview(intruduceView) + intruduceView.label_content.text = content - UIView.animate(withDuration: 0.5) { - intruduceView.alpha = 1 - intruduceView.view_container.transform = CGAffineTransform(scaleX: 1.0, y: 1.0) - } completion: { _ in + if url.lowercased().contains("jpg") || url.lowercased().contains("png") || url.lowercased().contains("jpeg"){ + intruduceView.img_profile.sd_setImage(with: URL(string: url)) + intruduceView.btn_play.isHidden = true + }else{ + intruduceView.btn_play.isHidden = false + intruduceView.videoUrl = url + guard !url.isEmpty else {return} + guard let Url = URL(string: url) else { return } + DispatchQueue.global(qos: .utility).async { + do { + let asset = AVURLAsset.init(url: Url) + let gen = AVAssetImageGenerator.init(asset: asset) + gen.appliesPreferredTrackTransform = true + let time = CMTimeMakeWithSeconds(0.0, preferredTimescale: 1) + var actualTime : CMTime = CMTimeMakeWithSeconds(0, preferredTimescale: 0) + let image = try gen.copyCGImage(at: time, actualTime: &actualTime) + DispatchQueue.main.async { + intruduceView.img_profile.image = UIImage.init(cgImage: image) + } + } catch { + print("错误") + } + } } - } + UIView.animate(withDuration: 0.5) { + intruduceView.alpha = 1 + intruduceView.view_container.transform = CGAffineTransform(scaleX: 1.0, y: 1.0) + } completion: { _ in - @IBAction func closeAction(_ sender: UIButton) { - UIView.animate(withDuration: 0.5) { - self.alpha = 0 - self.view_container.transform = CGAffineTransform(scaleX: 0.1, y: 0.1) - } completion: { _ in - self.removeFromSuperview() + } } + + @IBAction func playAction(_ sender: UIButton) { + let playerVC = AVPlayerViewController() + playerVC.allowsPictureInPicturePlayback = false + playerVC.player = AVPlayer(url: URL(string: videoUrl)!) + playerVC.player?.play() + + JQ_currentViewController().present(playerVC, animated: true) + } + + @IBAction func closeAction(_ sender: UIButton) { + UIView.animate(withDuration: 0.5) { + self.alpha = 0 + self.view_container.transform = CGAffineTransform(scaleX: 0.1, y: 0.1) + } completion: { _ in + self.removeFromSuperview() + } + } + } - -} -- Gitblit v1.7.1