【问题标题】:Get local URL of downloaded data instead of providing server url获取下载数据的本地 URL,而不是提供服务器 url
【发布时间】:2017-11-16 21:01:18
【问题描述】:

我想在我的ViewController 中播放一个视频文件,该文件加载到我的PageViewController 的每个页面中。正如您将看到的,我使用一个名为Carlos 的插件来缓存视频(最初需要从服务器下载),这样就不必在每次用户点击新页面时都下载它们。但是,我不知道如何播放这个下载的文件 (NSData)。因此,我真的很想知道如何获取下载文件的 URL,以便我可以使用 AVPlayer 播放它。

代码(仍然使用来自服务器的 URL)

let omniCache = videoCache.cache

let request = omniCache.get(URL(string: video!)!)

request
    .onSuccess { videoFile in

        print("The file..." )
        print(videoFile)

        //How can I get the local URL here instead of my server url
        if let videoURL = URL(string: self.video!){

            if self.player == nil {

                let playerItemToBePlayed = AVPlayerItem(url: videoURL as URL)

                self.player = AVPlayer(playerItem: playerItemToBePlayed)

                let playerLayer = AVPlayerLayer(player: self.player)
                playerLayer.frame = self.view.frame
                self.controlsContainerView.layer.insertSublayer(playerLayer, at: 0)

            }

        }

    }
    .onFailure { error in

        print("An error occurred :( \(error)")

    }

【问题讨论】:

  • 如果文件缓存在磁盘上,为什么不直接生成本地文件路径的 URL 并使用它/
  • @JAL 试过了,但不知道如何获取 URL,我也没有找到库提供的函数。 :/ 你知道找到本地 url 的方法吗?
  • 但是在答案中显示的代码中我应该在哪里输入我的videoFile

标签: ios swift video avplayer


【解决方案1】:

看看你的这段代码:

    videoFile in

    print("The file..." )
    print(videoFile)

    if let videoURL = URL(string: self.video!){

所以在第一行打印videoFile,原来是文件的数据。但是你忽略它!你再也不会提到videoFile。你为什么忽略它?那数据,你已经有了数据。现在玩吧!

如果数据是文件,则获取其文件 URL 并播放。如果它在内存中 - 绝对不应该,因为完全保存在内存中的视频会使你的程序崩溃 - 保存它,然后获取 那个 文件 URL 并播放它。

[然而,我不得不问,你为什么要在自己和这么简单的任务之间插入这个缓存插件。为什么不自己将远程视频下载到磁盘?]

【讨论】:

  • 我知道我没有使用我找不到本地 url 并且不知道如何播放它的数据,所以这就是为什么我展示了我到目前为止所拥有的......我仍然这样做不知道对我的问题的最后评论(“如何使用 NSURL 检索本地文件”)对我有什么帮助,因为我不知道在哪里可以输入 videoFile...
  • 该库附带一些其他功能,可以在其他各种情况下使缓存变得更加简单。除此之外,它还有一个内存缓存。
猜你喜欢
  • 2013-08-20
  • 1970-01-01
  • 2016-12-10
  • 2016-05-08
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
  • 2011-09-18
相关资源
最近更新 更多