使用 AVPlayer 播放的视频在 swift3 中从其容器视图中消失

Posted

技术标签:

【中文标题】使用 AVPlayer 播放的视频在 swift3 中从其容器视图中消失【英文标题】:Video played using AVPlayer disappears from its container view in swift3 【发布时间】:2017-07-03 09:20:26 【问题描述】:

我正在使用 AVPlayer 播放视频。我在要播放视频的 UIView 上使用 CALayer 的 addSubLayer 方法。一切正常,但是当我在后台发送应用程序然后再次将应用程序带回前台时,视频消失了(视频持续时间仅为 1 秒)。在我在后台发送 App 之前,视频(即使它已播放完毕)仍保留在容器视图中,我们可以看到它。但是一旦我做背景,然后是应用程序的前景,视频/可能是图层消失了。

不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

当您将应用置于前台时,您似乎希望将视频的最后一帧保留在容器视图中。

请用

设置AVPlayer对象的actionAtItemEnd属性

AVPlayerActionAtItemEnd.pause 选项。这将在播放器播放完视频后暂停视频并将图层保留在您的容器视图中。

【讨论】:

【参考方案2】:

请为应用程序后台/前台设置观察者。当您的应用从背景到前景时,然后在您的观察者方法中插入以下代码。

playerLayer = AVPlayerLayer(player: avPlayer)
view.layer.insertSublayer(playerLayer, at: 0)

【讨论】:

以上是关于使用 AVPlayer 播放的视频在 swift3 中从其容器视图中消失的主要内容,如果未能解决你的问题,请参考以下文章

使用swift 3点击单元格时如何在Avplayer中播放来自url的视频

从 Swift 3 中的 API 获取 AVPlayer 中的视频

AVPlayer 不播放 URL 声音 Swift 3

使用 AVPlayer 播放本地视频

使用 AVPlayer 时为啥我的视频无法在我的 UIView 中播放

avplayer 和 wkwebview 视频播放