足球直播_足球免费在线高清直播_足球视频在线观看无插件-24直播网

App上传大视频的一种解决方案

  去年年底闲来无事,在猪八戒网上闲逛,看能否赚点零花钱。哈~。大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!

  看到一需求:相册读取大视频文件(上G),文件流读取,分片上传,禁止占用本地磁盘。

  最初想到读取视频文件用 UIImagePickerController,文件流上传采用NSInputStream和 NSOutputStream去解决。网上查找也有不少对应的资料和demo。后来与老板沟通后,要求是上传到七牛类似的云端,文件流上传也不符合分片上传的要求。最重要的一点视频文件很大,直接读取到App就会崩溃。

  另外一种读取相册的方式是ALAsset,iOS 8以后苹果推荐使用PhotoKit。而且最让人激动的是,通过 PhotoKit可以获取到视频文件的路径。七牛云提供的分片上传接口中,参数必须是路径大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!。哈~~接下来就是做个demo去验证啦。

  获取所有相册资源,并按照创建时间排序。

  let fetchOpt = PHFetchOptions()

  fetchOpt.sortDescriptors = [NSSortDescriptor.init(key: "creationDate", ascending: true)]

  获取所有视频集合。

  let videosAsset = PHAsset.fetchAssets(with: PHAssetMediaType.video, options: fetchOpt)

  获取视频文件路径。

  集成七牛云存储第三方,基本实现需求。

  我在测试时,PhotoKit获取视频文件的方式是不可视的,很难选择自己想要上传的文件。而UIImagePickerController可以选择对应的视频。想要做一个类似相册的VideoPicker,就要获取视频的第一帧,并把它显示出来。

  在加上视频时间,就像个VideoPicker的样子啦。

  

  这种VideoPicker的方式与系统相册的方式对比。ThumbVideoPicker占用内存小大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!。我用一个20M左右的视频文件测试。结果如下:

系统UIImagePickerController方式

  

ThumbVideoPicker方式

  在打开到对应视频缩略图页面时,系统内存达到第一个峰值,约16M左右。而本文所用ThumbVideoPicker只有13M左右。另外系统在选择对应视频后有一个压缩的过程,也会占用不少内存。在视频文件很大时,这种优势更为明显。

  如果是仅为获取视频文件路径上传,或者大文件视频上传(无压缩),采用PhotoKit的方式也是一个较好的选择。

  本文参考demo

  附:

  NSInputStream 相册上传资料

  PhotoKit学习资料

  Example app using Photos framework

App上传大视频的一种解决方案

App上传大视频的一种解决方案

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~