iOS AVPlayer无法播放所有远程文件

时间:2018-08-03 00:45:31

标签: ios avfoundation dropbox avplayer swiftydropbox

我正在使用SwiftyDropbox的{​​{1}}在getTemporaryLink()中播放视频。我有六个测试文件,它们都按预期工作,除了1.。

一个无效的文件大小为41 MB(我不会考虑较大的视频文件),其余的大小为<22 MB。

我已经多次阅读AVPlayerAVFoundation文档,但找不到最大文件大小的任何内容,尽管我不希望流内容的最大文件大小。我希望它能够持续播放下载到内存中的较小块。

我的问题是:

  1. SwiftDropbox中播放远程URL是否有文件大小限制?
  2. 如果没有,是否有某种方法需要我使用AVPlayer来传输这些较大的文件?

我正在使用以下代码启动AVPlayer

AVPlayer

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该观察status属性的值,以了解为什么playerItem可能无法播放。这是一个以以下代码开头的小代码段:

  1. 添加观察者

    let url = URL.init(string: "your url string")
    let item = AVPlayerItem.init(url: url!)
    item.addObserver(self,
                     forKeyPath: "status",
                     options: .new,
                     context: nil)
    
  2. 检查错误

    override func observeValue(forKeyPath keyPath: String?,
                               of object: Any?,
                               change: [NSKeyValueChangeKey : Any]?,
                               context: UnsafeMutableRawPointer?) {
        if let item = object as? AVPlayerItem, keyPath == "status" {
            if item.status == .failed {
                print(item.error?.localizedDescription ?? "Unknown error")
            }
        }
    }