答案 0 :(得分:57)
当shouldOptimizeForNetworkUse设置为YES时,调用finishWriting会将MP4 moov atom(movie atom)从文件末尾移动到文件的开头。 moov atom包含有关电影文件的信息,如时间刻度和持续时间。 moov还包含“subatoms”,其中包含轨道,文件中的数据偏移等信息。
只能使用moov atom中的信息进行播放,当它位于文件的开头而不是文件的末尾时,即使电影播放器仅加载了文件,也可以开始播放该文件它的。
在实践中,现代浏览器将使用HTTP / 1.1 Range标头从文件末尾获取moov原子,以加载moov原子,即使它位于文件的末尾。
将shouldOptimizeForNetworkUse设置为YES也有一些副作用: