我将标签“tokyo”归因于我的 .mp4 视频,并将其设置为在应用程序安装过程中已安装。
最初,我使用路径从我的资源加载它,但是现在它不同了,因为它位于资产目录中。
阅读文档后,我尝试了类似的操作:
NSBundleResourceRequest(tags: ["tokyo"]).beginAccessingResourcesWithCompletionHandler { (error) -> Void in
let tokyoVideo = NSDataAsset(name: "tokyo")
}
要以 NSData 形式访问此视频,我可以使用:
tokyoVideo.data
但是,我使用的是 AVPlayer,它将参数作为 NSURL,而不是 NSData。
那么如何获取视频的 NSURL 呢?
资产目录仅用于存储数据吗?我应该使用它来存储我的视频,还是有更好的替代方案?
问题在于将 mp4 放入资产目录中。资源不必位于资产目录中即可作为按需资源进行访问。
将您的资源从目录移到工作区并标记它们,然后使用 NSBundleResourceRequest 的包属性
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
}
})
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)