私の iOS アプリには、On Demand Resources を使用してアプリで特定の時間にダウンロードする mp4 ビデオがたくさんあります。このチュートリアルの使用: 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)。しかし、後でタグ付けしてダウンロードした後は機能せず、コンソールには何も出力されません。アプリに黒い画面が表示されるだけです。
私は何年もの間これに固執しており、本当に助けてくれます。
ありがとう