0

我正在尝试播放下载到设备文档目录的视频。由于某种原因,它不会发生。我得到的只是这个符号:

在此处输入图像描述

这是我的代码:

let documentPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let videoFileUrl = URL(fileUrlWithPath: documentPath)
let videoFilePath = videoFileUrl.appendingPathComponent("somVideo.mp4").path
if FileManager.default.fileExists(atPath: videFilePath){
    let player = AVPlayer(url: URL(string: videoFilePath)!)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player
    self.present(playerViewController, animated: true) {
        playerViewController.player!.play()
    }
}
else {
    print("File doesn't exist")
}

该文件存在于该位置 - 我已经检查了模拟器的文档目录 - 并且该else语句没有被触发。没有其他任何内容打印到控制台。

任何帮助,将不胜感激。

4

1 回答 1

3

这是 OP 编辑​​到问题中的答案(后来因为答案应该是答案而被回滚)。如果 OP 发布单独的答案,我将删除这个答案。


在我的一位同事的帮助下,我设法让它工作起来。如果有人感兴趣,这里是答案:

let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
if let docDir : URL = urls.first {
    let videoUrl = docDir.appendingPathComponent("\(objectId).mp4")
    do {
        let videoExists : Bool = try videoUrl.checkResourceIsReachable()
        if videoExists {
            let player = AVPlayer(url: videoUrl)
            let playerController = AVPlayerViewController()
            playerController.player = player
            self.present(playerController, animated: true) {
                playerController.player!.play()
            }
        }
        else {
            print("Video doesn't exist")
        }
    }
    catch let error as NSError {
        print(error)
    }
}
于 2017-01-10T17:25:07.657 回答