【问题标题】:How to access the Video files, which are present in iOS Files App using AVPlayer in iOS swift?如何在 iOS swift 中使用 AVPlayer 访问 iOS Files App 中存在的视频文件?
【发布时间】:2020-02-13 08:32:49
【问题描述】:

我正在尝试访问 iOS 文件应用程序中存在的视频文件。尝试使用 AVPlayer 播放视频

我可以访问这些视频,但一段时间后,当我尝试访问同一视频时,我从 AVPlayer 收到错误消息。

let filemgr = FileManager.default
let docsDirURL = try! filemgr.url(for: .documentDirectory, 
  in: .userDomainMask, appropriateFor: nil, create: true)

let lastComp = docsDirURL.lastPathComponent
let pathy = "\(docsDirURL)"

if let urls = lap.videoURLs {
  self.lap = lap
  for url in urls {
    let urlComps = "\(url)".components(separatedBy: "/")
    var urlpath = ""
    for (index, element) in urlComps.enumerated() {
      if index > 9{
        urlpath +=  element + "/"
      }
    }

    print(urlpath)
    var pathz = pathy.replacingOccurrences(of: lastComp, with: urlpath)
    pathz = String(pathz.dropLast(2))
    print(pathz)

    let finalURL = NSURL(string: pathz)
//  let playerItem = AVPlayerItem(url: url as URL)
    let playerItem = AVPlayerItem(url: finalURL! as URL)
    playerItem.addObserver(self, forKeyPath: "status", options: .new, 
      context: &itemStatusContext)
    self.playerItems.append(playerItem)

    if self.queuePlayer == nil {
      self.queuePlayer = AVPlayer(playerItem: playerItem)
    }
  }
}

我希望像以前一样正常播放视频,但我只能访问它一段时间,比如一分钟,然后在收到错误消息之后。

可选(错误域=NSURLErrorDomain 代码=-1100 “在此服务器上找不到请求的 URL。” UserInfo={NSLocalizedDescription=在此服务器上找不到请求的 URL。,NSUnderlyingError=0x283368f90 {错误域=NSPOSIXErrorDomain 代码=2“没有这样的文件或目录”}})和 URL:[>, >]

【问题讨论】:

    标签: ios swift avplayer avplayeritem


    【解决方案1】:

    因此,如错误 “没有这样的文件或目录”中所述,文件不存在。关于它存储在临时文件夹中的完整路径。可能您通过UIDocumentPickerViewController 或类似组件导入了这些文件。您必须立即(同步)将提供的文件复制到您获取某个本地存储的 URL 的同一代码块中,以避免这种情况。

    【讨论】:

    • 是的,我从 UIDocumentPickerViewController 获取它。有没有其他方法可以直接访问它并保存临时文件夹的实例?复制视频文件会增加应用程序的大小并导致一些其他问题。
    • 我不知道这种方式。如果您仅在部分时间使用这些文件,那么您可以在完成后直接删除它们。但是,如果您需要它们很长时间,那么您必须一直拥有它们的副本。
    • 是的,这是有道理的。谢谢老兄。
    猜你喜欢
    • 2018-05-11
    • 2015-10-16
    • 1970-01-01
    • 2022-02-03
    • 2014-11-02
    • 2015-07-26
    • 1970-01-01
    • 2016-08-08
    • 2020-06-25
    相关资源
    最近更新 更多