视频 2 URL?
NSData 2 Video URL?
需要将视频文件转换为 NSData,然后再转换回可播放的 URL。 NSData部分如下:
let videoNSD = NSData(contentsOfURL: videoPreview!)
// videoNSD is uploaded to cloud and then retrieved..
func playNSDataVideoPreview(videoNSD: NSData)
{
// how to play in AVPlayer?
let playerController = AVPlayerViewController()
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsDirectory = paths[0]
let filePath = documentsDirectory + "/" + "nsdfile-1234.mp4"
let nsdURL = NSURL(fileURLWithPath: filePath)
videoNSD.writeToURL(nsdURL, atomically: true)
mediaPlayer = AVPlayer(URL: nsdURL)
playerController.player = mediaPlayer
mediaPlayer.play()
}
在 AVPlayer 中播放的最佳做法是什么?
谢谢...
首先,我建议 Upload/Download 作为文件(来自文件句柄)而不是数据(NSData),因为视频可能比 RAM 大(想象一部电影)。
要使用 Alamofire 下载文件,您可以使用 https://github.com/Alamofire/Alamofire#downloading
中的示例代码
Alamofire.download(.GET, "http://httpbin.org/stream/100") { temporaryURL, response in
let fileManager = NSFileManager.defaultManager()
let directoryURL = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
let pathComponent = response.suggestedFilename
return directoryURL.URLByAppendingPathComponent(pathComponent!)
}
下载后有文件,可以直接使用AVPlayer(URL URL: NSURL)
如果您只有视频的 NSData 并想播放它,请先将其保存为文件,然后使用您保存的 URL(文件位置)
创建 AVPlayer
YOURVIDEODATA.writeToURL(URL_WHERE_TO_SAVE,atomically: true)
然后再次使用 AVPlayer(URL: URL_WHERE_TO_SAVE)
需要将视频文件转换为 NSData,然后再转换回可播放的 URL。 NSData部分如下:
let videoNSD = NSData(contentsOfURL: videoPreview!)
// videoNSD is uploaded to cloud and then retrieved..
func playNSDataVideoPreview(videoNSD: NSData)
{
// how to play in AVPlayer?
let playerController = AVPlayerViewController()
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsDirectory = paths[0]
let filePath = documentsDirectory + "/" + "nsdfile-1234.mp4"
let nsdURL = NSURL(fileURLWithPath: filePath)
videoNSD.writeToURL(nsdURL, atomically: true)
mediaPlayer = AVPlayer(URL: nsdURL)
playerController.player = mediaPlayer
mediaPlayer.play()
}
在 AVPlayer 中播放的最佳做法是什么?
谢谢...
首先,我建议 Upload/Download 作为文件(来自文件句柄)而不是数据(NSData),因为视频可能比 RAM 大(想象一部电影)。
要使用 Alamofire 下载文件,您可以使用 https://github.com/Alamofire/Alamofire#downloading
中的示例代码Alamofire.download(.GET, "http://httpbin.org/stream/100") { temporaryURL, response in
let fileManager = NSFileManager.defaultManager()
let directoryURL = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
let pathComponent = response.suggestedFilename
return directoryURL.URLByAppendingPathComponent(pathComponent!)
}
下载后有文件,可以直接使用AVPlayer(URL URL: NSURL)
如果您只有视频的 NSData 并想播放它,请先将其保存为文件,然后使用您保存的 URL(文件位置)
创建AVPlayer
YOURVIDEODATA.writeToURL(URL_WHERE_TO_SAVE,atomically: true)
然后再次使用 AVPlayer(URL: URL_WHERE_TO_SAVE)