博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
视频播放器边下边播(保存到沙盒,显示进度)
阅读量:6093 次
发布时间:2019-06-20

本文共 3031 字,大约阅读时间需要 10 分钟。

没怎么研究视频播放器,就在网上找了个,链接:https://github.com/835239104/KrVideoPlayerPlus

下载AFNetworking,

1.下载最新版的会报错,没有引入相关库

2.AFSecurityPolicy.m中:注释了一部分代码

#pragma mark - 这里改了 ------#warning - 这里改了 --------//#if !TARGET_OS_IOS && !TARGET_OS_WATCH//static NSData * AFSecKeyGetData(SecKeyRef key) {//    CFDataRef data = NULL;////    __Require_noErr_Quiet(SecItemExport(key, kSecFormatUnknown, kSecItemPemArmour, NULL, &data), _out);////    return (__bridge_transfer NSData *)data;////_out://    if (data) {//        CFRelease(data);//    }////    return nil;//}//#endifstatic BOOL AFSecKeyIsEqualToKey(SecKeyRef key1, SecKeyRef key2) {//#if TARGET_OS_IOS || TARGET_OS_WATCH    return [(__bridge id)key1 isEqual:(__bridge id)key2];//#else//    return [AFSecKeyGetData(key1) isEqual:AFSecKeyGetData(key2)];//#endif}

3.实现边下边播(我用的是一边在网上看一边下载,所以会有点卡)

/** * 下载文件 */- (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]) {         [self addVideoPlayerWithURL:[NSURL fileURLWithPath:fileName]];    }else{        //创建附件存储目录        if (![fileManager fileExistsAtPath:aSavePath]) {            [fileManager createDirectoryAtPath:aSavePath withIntermediateDirectories:YES attributes:nil error:nil];        }//         [self addVideoPlayerWithURL:[NSURL fileURLWithPath:fileName]];        [self addVideoPlayerWithURL:[NSURL URLWithString:aUrl]];        //下载附件        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];            NSLog(@"完成下载");            //设置下载数据到res字典对象中并用代理返回下载数据NSData        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {            NSLog(@"下载失败");            //下载失败        }];                [operation start];    }}

注意:从本度读取路径:[NSURL fileURLWithPath:fileName]

在网上读取路径:[NSURL URLWithString:aUrl]

Demo百度云下载链接:http://pan.baidu.com/s/1c0bL9dQ

补充:iOS边下边播放 http://blog.csdn.net/zttjhm/article/details/38063605

iOS视频压缩:http://blog.csdn.net/lookyou111/article/details/25625775

转载于:https://www.cnblogs.com/hxwj/p/4742932.html

你可能感兴趣的文章
常用限制input的方法
查看>>
Ext Js简单事件处理和对象作用域
查看>>
IIS7下使用urlrewriter.dll配置
查看>>
12.通过微信小程序端访问企查查(采集工商信息)
查看>>
WinXp 开机登录密码
查看>>
POJ 1001 Exponentiation
查看>>
HDU 4377 Sub Sequence[串构造]
查看>>
云时代架构阅读笔记之四
查看>>
WEB请求处理一:浏览器请求发起处理
查看>>
Lua学习笔记(8): 元表
查看>>
PHP经典算法题
查看>>
LeetCode 404 Sum of Left Leaves
查看>>
LeetCode 83 Remove Duplicates from Sorted List
查看>>
醋泡大蒜有什么功效
查看>>
hdu 5115(2014北京—dp)
查看>>
数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)...
查看>>
PHP读取日志里数据方法理解
查看>>
EF 中 自定义的参数查询
查看>>
开源软件与免费软件的区别
查看>>
PAT 1069 The Black Hole of Numbers[简单]
查看>>