我已经阅读了几篇关于直播视频/音频的帖子.不幸的是,似乎没有任何“好”的解决方案.
对于为图像提供的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中:播放视频.