视频播放器边下边播(保存到沙盒,显示进度)

没怎么研究视频播放器,就在网上找了个,链接: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;
//}
//#endif

static 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

时间: 2024-10-08 06:44:13

视频播放器边下边播(保存到沙盒,显示进度)的相关文章

将图片保存到沙盒或者相册

将图片保存到沙盒或者相册: 1.保存到相册: -(void)saveImageToAlbum:(UIButton *)sender{    //将图片保存到相册中    UIImageWriteToSavedPhotosAlbum(self.image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);} 2.保存到沙盒中 -(void)saveImageToSandBox:(UIButton *)sender

AFNetworking Block下载文件保存到沙盒

/** *  @author Jakey * *  @brief  下载文件 * *  @param paramDic   附加post参数 *  @param requestURL 请求地址 *  @param savedPath  保存 在磁盘的位置 *  @param success    下载成功回调 *  @param failure    下载失败回调 *  @param progress   实时下载进度回调 */- (void)downloadFileWithOption:(NS

IOS把文件保存进沙盒目录

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"a.jpg"]];   // 保存文件的名称 BOOL result = [UIIm

关于数据保存的方式(沙盒,解档归档(swift方法))

/// 保存用户信息(保存在沙盒中) - (void)saveUserInfo { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // iOS 8.0 会直接写入沙盒,无需再使用 `[defaults synchronize];` [defaults setObject:self.username forKey:SKUsernameKey]; [defaults setObject:self.pwd forKe

iOS沙盒机制介绍

一.沙盒机制 沙盒的概念:沙盒是每一个iOS应用程序都会自动创建的一个文件系统目录(文件夹),而且沙盒还具有独立.封闭.安全的特点. 沙盒机制 iOS中的沙盒不仅仅是一个文件目录,TA其实更是一种安全体系 TA规定了应用程序只能在为该应用程序创建的文件夹(也就是沙盒)内访问文件,不可以访问其他沙盒内的内容(iOS已经部分开放访问) 所有的非代码文件都保存在沙盒中,图片.音频.视频.属性列表(plist).sqlite数据库以及文本文件等. 沙盒机制的特点 每个应用程序的活动范围都限定在自己的沙盒

iOS开发 - 获取真机沙盒数据

今天要获取之前真机测试时写入沙盒的数据, 本来以为挺麻烦的. 后来捣腾了一下, 才知道原来这么简单... 下面直接看具体步骤. 前提: 真机已经通过USB和你的电脑连接上了! 1.进入Organizer 2.选择你的应用. 并导出数据.(点击Download) 3.保存数据到相应位置.(点击Save) 4.打开, 查看数据. 保存完毕后, 你后发现一个这样的文件. 选中它, 右键---->显示包内容. 然后进入------->AppData ------>Documents. 即可看到你

沙盒,plist文件,偏好设置

偏好设置: 应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件 Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录 tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时,系统也可能会清除该目录下的文件.iTunes同步设备时不会备份该目录 Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录.一般存储体积大.不

利用IOS模拟器将数据存储在本地沙盒中以及从沙盒中读取详细步骤

使用IO模拟器,应用沙盒的根路径为:/Users/apple/Library/Application Support/iPhone Simulator/6.0/Applications(6.0为模拟器的版本) 1.获取应用沙盒目录 <1>利用沙盒根目录拼接"Documents"字符串 NSString * home = NSHomeDirectory(); NSString * documents = [home stringByAppendingPathComponent

修改迅雷下载中“边下边播”的默认播放器

相信大家都对迅雷的边下边播有一定的了解,正常情况下都默认的播放器的迅雷看看,但是它的播放器存在的问题相信大家也有一定的了解:话不多说,开始! 先看看修改之前的图: 教程开始: 第一步,找到你的迅雷安装路径,例如我的,注意我标红的路径: 第二步,新建一个叫"xmp.ini"的空文件,然后用记事本或者其他文本编辑软件打开,将以下代码复制进去:其中"D:\PotPlayer\PotPlayerMini.exe"是你自己想要的播放器的安装位置. [global] Path=