Commit 65109d88 authored by Steven杜宇's avatar Steven杜宇

// 视频分享

parent 194545a3
......@@ -10,6 +10,7 @@ import UIKit
import AVFoundation
import AVKit
import BMPlayer
import Kingfisher
class YHVideoPlayerVC: YHBaseViewController {
......@@ -86,7 +87,38 @@ class YHVideoPlayerVC: YHBaseViewController {
gk_navigationBar.isHidden = true
view.backgroundColor = .black
view.addSubview(navBar)
setupLikeAndCollectUI()
setupPlayerUI()
navBar.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalToSuperview().offset(k_Height_statusBar())
make.height.equalTo(k_Height_NavContentBar)
}
bottomView.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.height.equalTo(YHHomeWebBottomView.height + k_Height_safeAreaInsetsBottom())
}
}
func setupPlayerUI() {
view.addSubview(player)
player.snp.makeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar+20)
make.left.right.equalTo(0)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom()-YHHomeWebBottomView.height-20)
}
guard let videoURL = URL(string: url) else {
YHHUD.flash(message: "无效URL")
return
}
let asset = BMPlayerResource(url: videoURL)
player.setVideo(resource: asset)
// 默认静音
player.avPlayer?.isMuted = true
}
func setupLikeAndCollectUI() {
bottomView = {
let view = YHHomeWebBottomView()
view.tintMode = .dark
......@@ -157,35 +189,6 @@ class YHVideoPlayerVC: YHBaseViewController {
return view
}()
view.addSubview(bottomView)
setupPlayerUI()
navBar.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalToSuperview().offset(k_Height_statusBar())
make.height.equalTo(k_Height_NavContentBar)
}
bottomView.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.height.equalTo(YHHomeWebBottomView.height + k_Height_safeAreaInsetsBottom())
}
}
func setupPlayerUI() {
view.addSubview(player)
player.snp.makeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar+20)
make.left.right.equalTo(0)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom()-YHHomeWebBottomView.height-20)
}
guard let videoURL = URL(string: url) else {
YHHUD.flash(message: "无效URL")
return
}
let asset = BMPlayerResource(url: videoURL)
player.setVideo(resource: asset)
// 默认静音
player.avPlayer?.isMuted = true
}
}
......@@ -195,7 +198,7 @@ extension YHVideoPlayerVC {
}
@objc func didShareButtonClicked() {
shareVideoContent()
}
}
......@@ -235,4 +238,45 @@ extension YHVideoPlayerVC {
}
getData()
}
func shareVideoContent() {
let title: String = self.viewModel.mainModel?.title ?? ""
let link:String = self.viewModel.mainModel?.media_url ?? ""
let thumbUrl = self.viewModel.mainModel?.img_url ?? ""
if thumbUrl.isEmpty {
YHHUD.flash(message:"分享失败")
return
}
if link.isEmpty {
YHHUD.flash(message:"分享失败")
return
}
requestThumbImage(url: thumbUrl) { thumbImg in
guard let thumbImg = thumbImg else {
DispatchQueue.main.async {
YHHUD.flash(message:"分享失败")
}
return
}
YHShareManager.shared.sendVideoContent(title, "", thumbImg, link:link)
}
}
func requestThumbImage(url: String, block:((UIImage?)->())?) {
let url = URL(string: url) // 替换为你要下载的图片 URL
let downloader = KingfisherManager.shared.downloader
downloader.downloadImage(with: url!) { result in
switch result {
case .success(let value):
let image = value.image
// 在这里使用下载得到的 image 对象
block?(image)
case .failure(let error):
// 下载失败,处理错误
print("图片下载失败: \(error)")
block?(nil)
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment