Получение видео из каталога активов с использованием ресурсов по запросу
Например, я добавил в свое видео.mp4 тег "tokyo" и установил его как установленный во время установки приложения.
Теперь, прежде чем я использовал путь, чтобы получить его из своих ресурсов, теперь он другой, потому что он находится в каталоге активов.
После того, как нашел документацию, я попробовал что-то вроде:
NSBundleResourceRequest(tags: ["tokyo"]).beginAccessingResourcesWithCompletionHandler { (error) -> Void in
let tokyoVideo = NSDataAsset(name: "tokyo")
Так что я могу сделать: tokyoVideo.data для доступа к NSData, но я использую AVPlayer, который принимает параметр NSURL, а не данные.
Так что вы можете предложить мне для получения NSURL моего видео? Каталог активов только для данных? Так я не могу установить там свое видео?
3 ответа
Я думаю, что можно использовать каталог активов для видео, его упрощают управление изображениями. Используйте NSDataAsset для этого. Просмотрите последнюю строку в таблице ниже.
Ссылка на эту ссылку для получения дополнительной информации
В следующей таблице перечислены типы ресурсов, которые могут быть помечены как ресурсы по требованию.
Проблема в том, чтобы поместить mp4 в каталог активов. Ресурсы не обязательно должны быть в каталоге активов, чтобы к ним можно было обращаться как к ресурсам по требованию.
Переместите свои активы из каталога в рабочую область и пометьте их, затем используйте свойство bundle 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
}
})
}
}
}
Конечно, фильм может быть сохранен в файле данных.
NSDataAsset