Получение видео из каталога активов с использованием ресурсов по запросу
Я приписал своему видео. mp4 тег "tokyo", например, и установил его как установленный во время установки приложения.
Теперь, прежде чем я использовал путь, чтобы получить его из моих ресурсов, теперь он отличается, потому что он расположен в каталоге активов.
После того, как я нашел документы, я попробовал что-то вроде:
NSBundleResourceRequest(tags: ["tokyo"]).beginAccessingResourcesWithCompletionHandler { (error) -> Void in
let tokyoVideo = NSDataAsset(name: "tokyo")
Так что я могу сделать: tokyoVideo.данные для доступа к 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 } }) } } }