5

タグ「tokyo」を .mp4 ビデオに関連付け、アプリのインストール中にインストール済みとして設定しました。

元々、パスを使用してリソースからロードしていましたが、アセット カタログにあるため、現在は異なります。

ドキュメントを読んだ後、次のようなことを試しました:

NSBundleResourceRequest(tags: ["tokyo"]).beginAccessingResourcesWithCompletionHandler { (error) -> Void in
    let tokyoVideo = NSDataAsset(name: "tokyo")
}

このビデオに NSData としてアクセスするには、次を使用できます。

tokyoVideo.data

ただし、パラメーターを NSData ではなく NSURL として受け取る AVPlayer を使用しています。

では、動画の NSURL を取得するにはどうすればよいでしょうか? アセット カタログはデータを保存するためだけのものですか?それを使用してビデオを保存する必要がありますか?それともより良い代替手段はありますか?

4

3 に答える 3

5

問題は、mp4 をアセット カタログに入れることです。リソースは、オンデマンド リソースとしてアクセスするためにアセット カタログにある必要はありません。

アセットをカタログからワークスペースに移動してタグ付けし、NSBundleResourceRequest の bundle プロパティを使用します

import UIKit

class ViewController: UIViewController {
    var bundleRequest = NSBundleResourceRequest(tags: [])

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let tags: Set<String>  = ["odr"]
        bundleRequest = NSBundleResourceRequest(tags: tags)

        bundleRequest.beginAccessingResourcesWithCompletionHandler { (error:NSError?) -> Void in
            if let e = error {
                print(e)
                return
            }
            NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void in
                if let url = self.bundleRequest.bundle.URLForResource("tokyo", withExtension: "mp4") {
                    //use the url to play the video with avplayer
                }

            })
        }
    }

}
于 2015-12-17T18:41:23.650 に答える
2

確かに、映画はデータファイルに保存されることになります。

NSDataAsset

于 2015-07-08T21:43:33.280 に答える
0

アセット カタログを動画用に使用することは可能だと思います。画像の管理が簡単になります。NSDataAsset を使用します。下の表の最後の行を確認してください。

詳細については、このリンクを参照してください

次の表に、オンデマンド リソースとしてタグ付けできるリソースの種類を示します。

ここに画像の説明を入力

于 2015-06-22T13:18:35.257 に答える