在我的 iOS 应用程序中,我有一堆 mp4 视频,我在特定时间使用 On Demand Resources 在应用程序上下载了这些视频。使用本教程: https ://www.raywenderlich.com/520-on-demand-resources-in-ios-tutorial
我在应用程序开始时在以前的视图控制器中下载了这样的资源:
func requestSceneWith(tag: String,
onSuccess: @escaping () -> Void,
onFailure: @escaping (NSError) -> Void) {
// 2
currentRequest = NSBundleResourceRequest(tags: [tag])
// 3
guard let request = currentRequest else { return }
request.beginAccessingResources { (error: Error?) in
// 4
if let error = error {
onFailure(error as NSError)
return
}
// 5
onSuccess()
}
该资源似乎下载得很好,通过查看 xcode 中的磁盘报告,我知道它们已被下载。
但是,当视频应该在应用程序中播放时,应用程序只会显示黑屏。这是我播放视频的代码:
let videoURL = Bundle.main.url(forResource: "cow2", withExtension: "mp4", subdirectory: "Videos/Animals")
self.player = AVPlayer(url: videoURL!)
self.myPlayerController.player = self.player
self.myPlayerController.player?.play()
现在,当资源没有标记,并且它们随应用程序一起提供并且以后没有下载时,它们可以正常工作。控制台打印文件名,就像我做的一样 (print(videoURL.absoluteString)。但是在它们被标记并稍后下载后,它们就不起作用了,控制台中也没有打印任何东西。应用程序中只出现一个黑屏。
我多年来一直坚持这一点,并提供真正的帮助。
谢谢