Tag: 渐进式下载

AVURLAsset的caching行为

我使用AVURLAsset与各种AV / MP播放器类,它似乎是无视我的服务器的caching头。 我正在处理逐渐下载的小video(而不是HLS)。 有没有办法确保video被caching? 有没有办法预先cachingvideo,以便他们立即播放? 我尝试了简单地改变NSURLCache中的参数,但是到目前为止我还没有运气。 我也找不到任何直接的方式来操作如何通过AVURLAssetcachingURL提取。 我不想单独下载文件并指向本地版本,因为在开始播放之前我不想等待文件完全下载。 理想情况下,我也想避免自己pipe理本地磁盘caching。

Progressive Video在iOS上下载

我正在尝试在iOS应用程序中通过AVPlayer播放video的渐进式下载 。 我已经实现了一个可以下载文件到iPad的下载器模块。 但是,我发现我无法播放仍在写入的文件 所以,据我所知,我唯一的解决办法是通过下载一个文件“块”的列表,然后继续播放每个文件,因为他们准备好了(即:下载),可能使用HLS search我遇到了这个通过hls实现渐进式下载的问题,除此以外 ,我找不到其他方法 不过,我不断遇到search结果,说如何configurationWeb服务器利用iOS支持HTTP渐进式下载,但没有提到如何从iOS端做到这一点 那么,有没有人有任何想法和/或经验呢? 编辑:我也发现有可能是这样做的其他方式(即:stream,然后写stream媒体数据到磁盘),这是由这个问题,但仍然无法得到它的工作,因为它似乎不工作非本地资产!

AVPlayer和AVURLAssets的渐进式video下载

我们正在开发一个应用程序,需要通过AVPlayer播放video文件。 这些文件需要存储在用户的设备上,而且还必须在下载时播放。 目前我们已经构build了一个下载模块,它使用ASIHTTPRequest库通过PHP获取video文件(我们不希望媒体可以通过公共URL链接),并将它们asynchronous写入磁盘。 然后根据AV Foundation编程指南设置AVPlayer,使用AVURLAsset获取文件,使用资产制作AVPlayerItem,使用AVPlayer生成项目,然后将播放器设置为AVPlayerLayer。 播放器运行正常,完全下载的video文件,也将在模拟器中完美运行逐步下载的文件。 不幸的是,在实际的设备上,播放器的行为发生了变化,反而看起来像载入一次video,而不会尝试从磁盘抓取新的数据包。 结果是播放器将播放video和audio直到video中标记下载进度是在资产被加载的时间点 (例如,如果2MB的数据被缓冲,那么播放器被创build,播放器将只玩到2MB的数据)。 由于它具有video的标题,因此播放器会高兴地继续认为它正在播放video的整个持续时间,但是没有其他video呈现在屏幕上。 最后的一个问题是,如果video被插入到AVComposition中,并且AVPlayer被创build,那么渐进video将会播放正常。 这将是一个很好的解决scheme(无论如何我们的应用程序有时是必要的),除了我们的应用程序的客户端需要video可以通过AirPlay播放的Apple TV,这AVCompositions是不能的。 有谁知道是否有一种方法可以使用AVURLAssets构build的AVPlayer逐步下载video文件? 有没有办法强制播放器/ playerItem从AVURLAsset读取磁盘的方式似乎与AVComposition,而不是看起来caching在内存中的video? 谢谢!

在下载iOS时stream式传输video

我正在使用iOS 7,我有一个.mp4video,需要在我的应用程序中下载。 video很大(〜1 GB),这就是为什么它不包括在应用程序的一部分。 我希望用户能够在开始下载时立即开始观看video。 我也希望video能够被caching在iOS设备上,以便用户不需要稍后再下载。 播放video的普通方法(渐进式下载和实时stream式传输)似乎不能让您cachingvideo,因此我已经制作了自己的Web服务,将video文件分块并将字节stream式传输到客户端。 我使用NSURLConnection开始HTTPstream式传输: self.request = [[NSMutableURLRequest alloc] initWithURL:self.url]; [self.request setTimeoutInterval:10]; // Expect data at least every 10 seconds [self.request setHTTPMethod:@"GET"]; self.connection = [[NSURLConnection alloc] initWithRequest:self.request delegate:self startImmediately:YES]; 当我收到一个数据块时,我将它追加到本地副本的末尾: – (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:[self videoFilePath]]; [handle truncateFileAtOffset:[handle seekToEndOfFile]]; [handle writeData:data]; } 如果我让设备运行,文件下载成功,我可以使用MPMoviePlayerViewController播放它: NSURL *url=[NSURL fileURLWithPath:self.videoFilePath]; […]

MPMoviePlayerController:我什么时候才能知道文件的下载量达到了10%?

我正在从我们的networking服务器播放video,我正在使用MPMoviePlayerController来播放它。 它首先在下载文件的同时播放它。 在下载文件时,每当video达到10%时,我都需要在networking服务器上发布日志。 我怎么知道文件的下载量达到了10%? 顺便说一句,我已经得到了文件大小,已经计算出任何文件的10%,我只想知道什么时候能够知道它已经下载了10%的文件? 谢谢

如何在UIImageView正在下载时显示渐进式JPEG?

从网上下载图像并在UIImageView中显示它相当简单。 但是,这需要在向用户显示图像之前完全下载图像,彻底击败渐进式JPEG(和PNG)图像。 如何在传输完成时渲染部分下载的图像? 我可以想象SDK有一些更新图像的callback函数,但是我找不到这样的函数。 目前的iOS SDK有没有可能?