码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-07-23 17:45:01      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:ios   视频   聊天   视频下载   视频上传   

前言:

最近做即时聊天项目,涉及到视频的上传下载。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

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

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

标签:ios   视频   聊天   视频下载   视频上传   

原文地址:http://blog.csdn.net/jueyi1127/article/details/47025053

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!