如何在应用程序包之外的 AVPlayer 中播放视频文件

Posted

技术标签:

【中文标题】如何在应用程序包之外的 AVPlayer 中播放视频文件【英文标题】:How to play video file in AVPlayer outside of app bundle 【发布时间】:2018-11-30 08:35:19 【问题描述】:

如何播放未包含在我的 app bundle 中的视频文件? 我可以在我的 app bundle 中播放视频

    @IBOutlet weak var playerView: AVPlayerView!

override func viewDidLoad() 
    super.viewDidLoad()
    let videoUrl = Bundle.main.url(forResource: "captionsSample",  withExtension: "mp4")!
    let item = AVPlayerItem(url: videoUrl)
    let player = AVPlayer(playerItem: item)
    playerView.player = player

但是当我尝试从桌面或其他位置播放时,AVPlayer 不会播放它。

我想构建一个视频播放器,只要点击它就会播放视频文件。

我还查看了 Apple 教程,但它仅演示了如何在远程位置播放视频。

【问题讨论】:

这取决于沙箱。如果应用程序被沙盒化,则文件必须位于应用程序容器中(与捆绑包不同)。 【参考方案1】:

正如@vadian 所建议的,问题在于我的应用程序被沙盒化了。如果您关闭沙盒,您将能够读取/写入应用程序包之外的任何文件。这可能看起来像一个方便的解决方案,但不推荐。推荐的方法是打开 sanboxing 并将所需的权限添加到您的权利文件中。

【讨论】:

以上是关于如何在应用程序包之外的 AVPlayer 中播放视频文件的主要内容,如果未能解决你的问题,请参考以下文章

如何分配 AVPlayer 播放/暂停按钮 iOS?

向上滑动(将应用程序置于后台)并且视频在自定义 AVPLayer 中播放时如何停止画中画?

如何在具有 AVPlayer 类的应用程序中设置放大音量?

如何在 AVPlayer 中播放 iPod Library 文件

如何在 iPhone 中访问应用程序包之外的文件

如何在 Swift3 iOS 中以特定时间在 AVPlayer 中播放视频