iOS视频下载遇到的问题(附上AFHTTPRequestOperation下载视频方法)

前言:

最近做即时聊天项目,涉及到视频的上传下载。AFNetworking上传图片和视频(支持多张图片上传)

在视频下载中遇到一些问题,视频下载后无法播放

1 视频下载方法

/**
 * 下载文件
 */
- (void)downloadFileURL:(NSString *)aUrl savePath:(NSString *)aSavePath fileName:(NSString *)aFileName tag:(NSInteger)aTag
{
    NSFileManager *fileManager = [NSFileManager defaultManager];

    //检查本地文件是否已存在
    NSString *fileName = [NSString stringWithFormat:@"%@/%@", aSavePath, aFileName];

    //检查附件是否存在
    if ([fileManager fileExistsAtPath:fileName]) {
        NSData *audioData = [NSData dataWithContentsOfFile:fileName];
        //...视频下载完毕操作
    }else{
        //创建附件存储目录
        if (![fileManager fileExistsAtPath:aSavePath]) {
            [fileManager createDirectoryAtPath:aSavePath withIntermediateDirectories:YES attributes:nil error:nil];
        }

        //下载附件
        NSURL *url = [[NSURL alloc] initWithString:aUrl];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];

        AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
        operation.inputStream   = [NSInputStream inputStreamWithURL:url];
        operation.outputStream  = [NSOutputStream outputStreamToFileAtPath:fileName append:NO];

        //下载进度控制
        /*
         [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
         NSLog(@"is download:%f", (float)totalBytesRead/totalBytesExpectedToRead);
         }];
         */

        //已完成下载
        [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

            NSData *audioData = [NSData dataWithContentsOfFile:fileName];
            //设置下载数据到res字典对象中并用代理返回下载数据NSData
           //...视频下载完毕操作

        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

            //下载失败
            //...视频下载失败操作
        }];

        [operation start];
    }
}

2 下载完视频后,文件没有加后缀.MP4 就会出现播放不了的情况,我的解决方法是,在上面的filename加一个后缀.mp4,播放就ok了。

3 在下载其他文件时,如图片,录音,并未发现不加后缀就不正常显示或播放问题,有了解的或做IM项目的欢迎找我交流。我的软件群
156747694

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 20:12:44

iOS视频下载遇到的问题(附上AFHTTPRequestOperation下载视频方法)的相关文章

iOS选取相册中iCloud云上图片和视频的处理

关于iOS选取相册中iCloud云上图片和视频 推荐看:TZImagePickerController的源码,这个是一个非常靠谱的相册选择图片视频的库 .当然也可以自己写 如下遇到的问题 工作原因,需要处理接入一个视频模块,在视频选择的时候遇到了一个不太容易发现的bug,产生的原因是由于手机内存小,而用户又打开了相册同步iCloud, 加载中的图片 在这时,如果本地可用内存过小,会导致将本地相册中的图片或视频删除只留缩略图,如果App调用的时候想要选取这种图片就需要从iCloud云中进行下载,才

iOS多线程与网络开发之大文件下载 (边下边写/暂停恢复下载/压缩解压zip/多线程下载)

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 游戏官方下载:http://dwz.cn/RwTjl 游戏视频预览:http://dwz.cn/RzHHd 游戏开发博客:http://dwz.cn/RzJzI 游戏源码传送:http://dwz.cn/Nret1 A.需求 边下边写入硬盘 显示下载进度 暂停/恢复 下载 解压文件 多线程下载 B.基本知识 1

iOS开发中文件的上传和下载功能的基本实现-备用

感谢大神分享 这篇文章主要介绍了iOS开发中文件的上传和下载功能的基本实现,并且下载方面讲到了大文件的多线程断点下载,需要的朋友可以参考下 文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代码. 主控制器的关键代码: 复制代码代码如下: YYViewController.m#import "YYViewController.h" #define YYEnc

解决处女座看到win8这台电脑视频、图片、文档、下载、音乐、桌面等图标的显示

我们双击打开"这台电脑"后,也会很明显得发现另外一些变化:Windows 8.1 默认将视频.图片.文档.下载.音乐.桌面等常用文件夹也显示在其中了 删除上述文件夹的方法:通过修改系统注册表的方式来实现. 修改注册表有风险,请在修改前进行备份!!! 通过快捷键 Windows+R 打开运行对话框,输入 regedit .定位到以下键值: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion \Explorer\MyCo

iOS 13学习系列:如何在github下载开源项目到本地

一.问题描述 以 Coding iOS 客户端 为例讲解如何在github下载开源项目到本地 github地址:https://github.com/Coding/Coding-iOS 二.问题分析 根据项目的Git仓库是否引用其他版本库中的文件Git仓库,就是是否用到git submodule子模组,分为两种方式下载开源项目到本地. git submodule:项目的版本库在某些情况下需要引用其他版本库中的文件,例如有一套公用的代码库,可以被多个项目调用,这个公用代码库能直接放在某个项目的代码

Mac如何下载爱奇艺、腾讯视频、B站的在线视频?Downie超简单下载教程

Mac如何下载爱奇艺.腾讯视频.B站的在线视频?小编今天推荐的就是Downie for Mac,下载在线视频超级简单,Downie是一款非常优秀的视频下载软件,这款软件以超级简单,超级强大的视频下载能力而获得众多用户的关注与喜爱.那么,作为一款视频下载工具,如何成功下载喜欢的视频呢?接下来,小编将详细的为你一一介绍Downie for Mac下载视频教程! 1.打开Downie for Mac软件.2.打开视频所在的网页.3.点击鼠标右键选择复制视频地址.4.在Downie软件界面粘贴,软件开始

FLV视频在IIS6.0下不能播放 处理的方法

FLV视频在IIS6.0下不能播放 Flash视频由于其较高的压缩率和优越的下载速度,前景普遍看好,同时也为Flash课件增色不少.然而,在FLV视频播放中,却有两个头痛的问题    一.FLV视频在IIS 6.0中不能调用问题  早期版本的 IIS 不需要对 Flash 视频流做任何修改.在 Windows 2003 附带的默认 Web 服务器 IIS 6.0 中,服务器需要借助 MIME 类型来确认 FLV 文件为流媒体.   解决办法大致有三种:   1.修改服务器.既然Web服务器上没有

佳能视频恢复--如何快速恢复误删的佳能mov视频

佳能视频恢复--如何快速恢复误删的佳能mov视频 导读:怎么办呢?本人用佳能相机拍摄出来的很多MOV视频储存在个人电脑中,但是不知道什么时候被我给误删了,在回收站中没有找到,现在有些急用,有什么最快最好的方法能够恢复出来吗?对于这位网络朋友的疑难?相信遇到过的不再少数.那么,怎样才能又快又好的找回误删的mov视频呢?而且这个时候的回收站是已经清空了的情况下.今天小编就来跟大家分享一个吧!对于佳能mov视频的恢复,之前小编就操作过,是借助的第三方工具软件.这个恢复起来快,而且恢复效果比较好.关键是

专业定制下载系统网站/下载网站源码,资源下载网站源码

10年的技术团队专业定制下载系统网站/下载网站源码,资源下载网站平台定制 该下载系统由绿茶科技团队自主开发,系统采用了国内比较主流的thinkPHP框架实现的,数据库用MySQL.是一套致力于软件应用,工具游戏,视频小说,教程资讯等通用资源下载的下载系统整站源码.模版设计整洁.清爽,广告位布局合理.会员积分体系完善,支持用户上传分享免费.收费资源. 下载收益支持用户提现. 分享有收益,刺激用户上传扩充网站资源,实现商家与平台联和共盈. PC版: 手机版: 服务器选择:  服务器购买地址:http