本地视频

      最近在做有关选择本地视频分享出去及播放的问题。本人不才,研究一段时间外加参考大神的代码才捋顺了大体过程,明白该怎么做。

      首先我使用的工具是系统自带的UIImagePickerController来进行视频的展示。它的其中一个代理方法:

- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;

通过这个方法可以获得你选择的单个视频的信息(图1):

图1

经过尝试发现UIImagePickerControllerMediaURL 根本无法获取到你选择的那个视频,更别提上传数据了。正确路径与之对比(图2):

图2

可以看出前缀多了一个/private,而private代表系统文件夹。这说明文件存储在系统文件夹,非用户文件夹,root级别的,我们访问不到。这样这条路算是走不通了,那么应该怎么做呢?

      于是就想到了获得视频的名字重新写入沙盒中,(就是重新给他一个新的路径,)这样不就知道它的路径了吗?视频的名字应该怎么得到又是一个问题。后来发现通过ALAsset 可以得到ALAssetRepresentation 的对象,然后就可以得到很多文件的属性,比如说文件的大小(size)、路径(URL)、名字(filename)等等。这样我们就需要获得相册里的所有分组,然后通过遍历并与UIImagePickerControllerReferenceURL 做匹配(图3),找到一致的通过他的文件名重新写入沙盒中,这样就得到了它的新的路径,不管是播放还是上传都没有问题了。

图3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容