2

我正在编写一个可以将不同来源的视频下载到本地硬盘的 mac 应用程序。到目前为止效果很好,但我希望允许用户在下载这些视频时播放这些视频。浏览 QTKit 的文档,我找不到任何方法可以让我将电影数据分段提供给QTMovie对象。

有没有办法使用 QTKit、AVFoundation 或其他一些系统框架来实现?我真的很想避免为此引入 ffmpeg 或其他第三方库。

4

2 回答 2

3

问题在于 QuickTime 电影的工作方式。它们不是基于流的文件,因此一次提供一个块的信息通常没有用。相反,它们是基于原子的文件,并且允许原子以任何顺序出现。
根据 QuickTime 电影的创建方式,“moov”原子(提供重要信息并且是解释媒体数据所必需的)可以(并且通常是)位于文件的末尾。如果它在最后,则在完全下载之前无法播放电影。如果 moov 数据位于开头(例如,如果有人使用“准备 Internet”选项保存了电影),则 QuickTime 将能够立即开始播放文件。

只有像 MPG 传输流这样的格式是为流式传输或“渐进式下载”而设计的。

于 2012-04-26T02:23:55.983 回答
2

您可能应该使用 AV Foundation 框架而不是 QTKit。您要做的第一件事是阅读AV Foundation Programming Guide。尽管该指南主要提到了 iOS,但自 10.7 起,OS X 上就提供了 AV Foundation 功能。

于 2012-04-22T21:40:15.777 回答