0

私の 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)。しかし、後でタグ付けしてダウンロードした後は機能せず、コンソールには何も出力されません。アプリに黒い画面が表示されるだけです。

私は何年もの間これに固執しており、本当に助けてくれます。

ありがとう

4

1 に答える 1