【问题标题】:iOS/Swift: How to add share button in the playbackControls of a AVPlayerViewController?iOS/Swift:如何在 AVPlayerViewController 的播放控件中添加共享按钮?
【发布时间】:2019-05-13 14:15:16
【问题描述】:
我想添加一个分享按钮以与UIActivityController 分享视频(例如通过邮件)。
我试图访问 AVPlayerViewController 的属性,但似乎我们不再允许它了...
for subview in playerViewController.view.subviews
{
}
如何在playbackControls右侧的播放按钮旁边添加一个简单的按钮?
有什么想法吗?
【问题讨论】:
标签:
ios
swift
avplayerviewcontroller
【解决方案1】:
如果您查看视图控制器的视图的子视图,您将看到它的单个视图称为AVPlayerViewControllerContentView。在制作视图控制器时,您可以这样做:
func showFullScreenVideo(using player: AVPlayer) {
// setup your player view controller
let playerViewController = AVPlayerViewController()
playerViewController.player = player
present(playerViewController, animated: true) { [weak self] in
self?.addShareButton(to: playerViewController)
}
}
private func addShareButton(to playerViewController: AVPlayerViewController) {
if let playerContentView = playerViewController.view.subviews.first {
let someView = SomeView()
playerContentView.addSubview(someView)
// use your own layout code:
someView.constrain(.centerX, .centerY, to: playerContentView)
}
}
在完成块内添加共享按钮可确保 playerViewController.view 已加载并可供使用。您可以尝试以多种方式强制加载视图。这是你的选择。另一种可能的方法是在添加分享按钮之前添加这行代码:
_ = playerViewController.view
而不是使用完成块。可能有效,也可能无效,但完成块方法肯定有效。