iOS/Swift:如何在 AVPlayerViewController 的播放控件中添加共享按钮?
Posted
技术标签:
【中文标题】iOS/Swift:如何在 AVPlayerViewController 的播放控件中添加共享按钮?【英文标题】:iOS/Swift: How to add share button in the playbackControls of a AVPlayerViewController? 【发布时间】:2019-05-13 14:15:16 【问题描述】:我想添加一个分享按钮以与UIActivityController 分享视频(例如通过邮件)。
我试图访问 AVPlayerViewController 的属性,但似乎我们不再允许它了...
for subview in playerViewController.view.subviews
如何在playbackControls右侧的播放按钮旁边添加一个简单的按钮?
有什么想法吗?
【问题讨论】:
我不认为你可以这样做,你需要创建自己的控件 @Scriptable 我同意。 @Scriptable 如果我喜欢这个***.com/a/33677661/3581620,你认为这会以同样的方式工作吗(一次点击使控件可见,第二次点击使其消失,等等...)? 【参考方案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
而不是使用完成块。可能有效,也可能无效,但完成块方法肯定有效。
【讨论】:
以上是关于iOS/Swift:如何在 AVPlayerViewController 的播放控件中添加共享按钮?的主要内容,如果未能解决你的问题,请参考以下文章
iOS:Swift - 如何在触摸地图上添加精确定位并获取该位置的详细地址?
iOS/Swift:如何在 AVPlayerViewController 的播放控件中添加共享按钮?