gpt4 book ai didi

ios - 获取下载数据的本地 URL,而不是提供服务器 URL

转载 作者:行者123 更新时间:2023-11-30 12:23:07 29 4
gpt4 key购买 nike

我想在我的 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)")

}

最佳答案

看看你的这段代码:

    videoFile in

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

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

因此,在第一行中打印 videoFile,结果是文件的数据。但随后你就忽略了它!您再也没有提到videoFile。你为什么忽视它?那就是数据,您已经拥有了数据。现在就玩吧!

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

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

关于ios - 获取下载数据的本地 URL,而不是提供服务器 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44549347/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com