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