到目前为止,我知道如何流式播放视频,以及如何下载并随后流式播放,但这里有一个棘手的部分:流式传输一次,将其存储在设备上,并在未来从设备上播放。
这有可能吗?
发布于 2011-07-12 08:33:43
保存视频非常容易。做一些类似这样的事情:
//Saving Movie
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:*MovieObject* forKey:@"MovieObjectDataKey"];
[archiver finishEncoding];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"MovieObjectDefaultsDataKey"];
[archiver release];
[data release];
//Retrieving movie
NSData *savedMovieData = [[NSUserDefaults standardUserDefaults] objectForKey:@"MovieObjectDefaultsDataKey"];
if (savedMovieData != nil) {
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:savedMovieData];
*MovieObject* = [[unarchiver decodeObjectForKey:@"MovieObjectDataKey"] retain];
[unarchiver finishDecoding];
[savedMovieData release];
[unarchiver release];
} else {
//Download Stream of Your Movie
}
唯一需要修改的就是* MovieObject *,每一步都要修改一次。
发布于 2011-08-16 21:00:13
这里不太确定你是如何得到你的流的,但是看看AVAssetWriter,AVAssetWriterInput和AVAssetWriterPixelBufferAdaptor,一旦你接收到数据,你应该能够使用以下命令将数据追加到像素缓冲区适配器:
appendPixelBuffer:withPresentationTime:
我不确定它是否适用于您,但通过一些调整,您应该能够调整您的输入以匹配此方法。有许多用于设置编写器的示例代码
发布于 2011-09-12 23:04:41
我知道你想实现什么,我只有一个变通办法。我不得不实现相同的行为,最终从服务器上流式传输视频,并在流式传输的旁边下载它。下次用户尝试流式传输视频时,请确定视频是否已下载到磁盘,否则再次流式传输。在正常情况下,视频已正确下载,并且可以离线查看。
https://stackoverflow.com/questions/6290251
复制相似问题