我将.mp4视频归结为“tokyo”标签,并在应用安装过程中将其设置为已安装。
在我使用Path从我的资源中获取它之前,现在它已经不同了,因为它位于资产目录中。
在找到文件后,我尝试了类似的东西:
NSBundleResourceRequest(tags: ["tokyo"]).beginAccessingResourcesWithCompletionHandler { (error) -> Void in
let tokyoVideo = NSDataAsset(name: "tokyo")
所以我可以这样做:tokyoVideo.data访问NSData,但我使用的是AVPlayer,它接受参数NSURL,而不是数据。
那么你有什么建议我获得我的视频的NSURL? 资产目录仅适用于数据吗?所以我不能在那里设置我的视频?
答案 0 :(得分: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
}
})
}
}
}
答案 1 :(得分:2)
当然,电影最终会存储在数据文件中。
NSDataAsset
答案 2 :(得分:0)