Как получить доступ к видеофайлам, которые есть в iOS Files App, используя AVPlayer в iOS swift? - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь получить доступ к видеофайлам, которые присутствуют в приложении iOS Files. Пытаясь воспроизвести видео с помощью 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)
    }
  }
}

Iожидаю нормального воспроизведения видео, как и раньше, но я могу получить к нему доступ только в течение некоторого времени, например, одной минуты, а затем после того, как получаю сообщение об ошибке

Необязательно (Ошибка домена = NSURLErrorDomain Code = -1100 "Запрошенный URL-адрес не найден на этом сервере." UserInfo = {NSLocalizedDescription = Запрошенный URL-адрес не найден на этом сервере., NSUnderlyingError = 0x283368f90{Error Domain = NSPOSIXErrorDomain Code = 2 «Нет такого файла или каталога»}}) и URLS: [>,>]

1 Ответ

0 голосов
/ 16 октября 2019

Таким образом, как указано в ошибке "Нет такого файла или каталога" файл отсутствует. Что касается полного пути, он хранится во временной папке. Возможно, вы импортировали эти файлы через UIDocumentPickerViewController или подобный компонент. Чтобы избежать этой ситуации, необходимо немедленно (синхронно) скопировать предоставленный файл в тот же блок кода, где вы получаете URL-адрес в какое-либо локальное хранилище.

...