Windows Media媒体内容采用的是ASF文件格式。Microsoft公司提供了Windows Media Format SDK,以支持以下三大功能:ASF文件的生成(包括ASF数据的流化)、ASF文件的编辑和ASF文件的播放(包括ASF媒体流的播放)。在开始编程之前,对SDK系统有个总体的认识和理解是必要的。(注:如果未作特别说明,本书所述的SDK或WMF SDK均是指Windows Media Format SDK。)
WMF SDK采用了面向对象的设计,是一套完全基于COM组件模型的高级开发包。这里说高级,意味着SDK屏蔽了ASF数据格式、网络传输控制等较为底层的流媒体技术实现细节,留给开发者的只有比较上层的编程接口。
图 2.1 WMF SDK 系统结构
如图 2.1,SDK引入了一系列的对象,如生成器、读取器、编辑器等。正是这些SDK对象屏蔽了Windows Media技术实现细节,使得应用程序开发者不需要了解太多的流媒体底层技术,也能开发出非常专业的流媒体应用系统。
在 SDK引入的众多对象中,最重要的莫过于图2.1中列出的那三个了。其中,生成器一般用于将非压缩的媒体数据编码成Windows Media格式的数据。整个编码过程非常简单,只要通过一个叫Profile的对象配置好目标数据流格式,再将输入数据的格式告诉生成器,然后依次将输入数据按照既定的方式传给生成器,剩下的事就都可以交给生成器了。生成器内部会根据Profile的配置,自动选择一种Windows Media编码器,然后对输入数据进行压缩编码,