Objective c 在tableview中缓存和保存视频

Objective c 在tableview中缓存和保存视频,objective-c,caching,Objective C,Caching,我正在用tableview显示视频,希望将URL/数据保存在缓存中,这样用户在重播时就不必再次下载相同的视频 不过,我想保留它们,直到用户退出应用程序。下次他打开应用程序时,他必须再次下载它们,所以我只需要在应用程序的活动生命周期内保存它们 我应该继续缓存还是有更有效的方法 -(void)loadVideo:(NSString *)urlString { NSURL *url = [NSURL URLWithString:urlString]; NSString* cachePath = [

我正在用tableview显示视频,希望将URL/数据保存在缓存中,这样用户在重播时就不必再次下载相同的视频

不过,我想保留它们,直到用户退出应用程序。下次他打开应用程序时,他必须再次下载它们,所以我只需要在应用程序的活动生命周期内保存它们

我应该继续缓存还是有更有效的方法

-(void)loadVideo:(NSString *)urlString {


NSURL *url = [NSURL URLWithString:urlString];
NSString* cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString* file = [cachePath stringByAppendingPathComponent:@"/EGOCache.plist"];
NSDictionary *dict =[NSDictionary dictionaryWithContentsOfFile:file];

if ([dict objectForKey:urlString] )
{
    NSData *data = [[EGOCache globalCache] dataForKey:urlString];
    data = [NSURLConnection sendSynchronousRequest:
            [NSURLRequest requestWithURL:url]
                                 returningResponse:nil
                                             error:nil];
    NSLog(@"loading from cache %@",urlString);

}else{
    NSData  *data = [NSURLConnection sendSynchronousRequest:
                     [NSURLRequest requestWithURL:url]
                                          returningResponse:nil
                                                      error:nil];
    [[EGOCache globalCache] setData:data forKey:urlString];
    NSLog(@"saving cache %@",urlString);

}
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval: 10.0];
[self.videoPlayer setContentURL:[request URL]];}

AVFoundation
允许在磁盘上传输视频文件。 我建议您将视频保存在Documents文件夹或Caches文件夹中,然后从那里将其传输到
AVFoundation
。然后,当用户退出应用程序时,
application将终止
,您可以从磁盘上擦除视频

编辑 使用MPMoviePlayerController:

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL: URL-TO-FILE-ON-DISK];
[player prepareToPlay];
[player.view setFrame: myView.bounds];  // player's frame must match parent's
[myView addSubview: player.view];
// ...
[player play];

我用的是MPMoviePlayerController。还有其他建议吗?我不明白你所说的URL-TO-FILE-ON-DISK是什么意思。更新了问题。(顺便说一句,我的代码有问题。我不认为它保存在缓存中)