ios – 将视频播放到UITableView中

我已经阅读了几篇关于直播视频/音频的帖子.不幸的是,似乎没有任何“好”的解决方案.

对于为图像提供的SDWebImageView的视频,我想要相同的功能.

现在我正在使用以下代码

NSURL *url=[[NSURL alloc] initWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"];
MPMoviePlayerController *moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:url];
moviePlayer.controlStyle=MPMovieControlStyleDefault;
moviePlayer.shouldAutoplay=YES;

但是当我滚动表格视图时,所有视频都会一次又一次地下载.那么我该如何停止下载呢?

有没有更好的解决方案来播放视频到UITableView?相同的Facebook,Instagram和Vine Apps在做什么?

解决方法

不要使用MPMoviePlayerController,使用AVFoundation的AVPlayer.

此外,不要将资产的下载耦合到您的UITableViewCell子类.使用其他数据源来下载和管理视频资产.

有几种方法可以做到这一点.

>保留由URL初始化的AVPlayerItem对象的数据源数组.每次滚动到单元格时,不要加载资源,只需将AVPlayerItem加载到单元格的播放器中,并在滚动时移除.>如果您需要保留视频数据,请考虑将每个视频下载到Documents目录中的临时文件.文件完成下载后,使用其initWithURL:方法将该数据加载到AVAsset中,并将URL指向本地文件.准备好后,您可以使用initWithAsset将资源加载到AVPlayerItem中:播放视频.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...