OSMF考虑到媒体引入了新的类和新的概念
对于有ActionScript媒体播放器开发经验的人,OSMF引入了新的类和规则来编写媒体播放器的逻辑。取代直接参照Flash Player本身的媒体API,OSMF开发者会参照OSMF类来编写(内部调用Flash Player本身的媒体API)。例如OSMF开发并不需要直接实例NetStream对象。
OSMF引入一个新的通用的类和概念。在过渡到开发OSMF媒体播放器,开发者需要赶上以OSMF的方式思考媒体的速度。本节的其余部分提供了一个OSMF类和概念的例子,在OSMF的基础上抽象得出。若想要更深一步的了解OSMF开发媒体播放器的相关知识,可以看官方的产品介绍文档。
举一个关于用OSMF开发媒体播放器的新内容的例子,它用了一个叫做MediaElement的抽象基类,代表了在框架中的各种媒体类型。为了在OSMF中展现出丰富的媒体,常见的MediaElement子类也是被广泛应用的,有VideoElement、AudioElement、SWFElement以及ImageElement类。
OSMF也支持另一种复杂MediaElement的子类CompositeElement。CompositeElement继承的类是用于创建组件的主要类:SerialElement类和ParallelElement类。图1显示了例子代码的嵌套组合,一个顶层类ParallelElement (2)和一个嵌套类SerialElement (1)。
图1 例子代码的嵌套组合,一个顶层类ParallelElement (2)和一个嵌套类SerialElement (1)。
OSMF包含了布局好的API。例如,用ParallelElement组件时,多种可视化元素都会同时显示出来。OSMF的API用像RelativeLayoutFacet的类(它会像图1中ParallelElement说明的那样用)或者用像AbsoluteLayoutFacet 类(用于覆盖)。在这些情况下,OSMF的布局面类能够在ParallelElement组件中使其定位子元素(很多子元素在那也能同时可视化)。
OSMF在布局层上应用面类的概念。所有的面类继承基类Facet。广泛的说,面类包含了相关媒体独立元素的元数据。例子包括(但不限于)提示点的元数据,服务质量(QoS)元数据等等。相关事件模型包含了类MetadataEvent、FacetValueEvent以及 FacetValueChangeEvent。
OSMF也支持基于OSMF媒体播放器和嵌入式HTML页面间的交互。当与HTMLMediaContainer类结合时,它通过一个继承了HTMLElement的类MediaElement来在OSMF中使用(在运行时,双向交流的JavaScript通过OSMF被内部启用,使用ActionScript类ExternalInterface)。该功能的应用基于OSMF的媒体播放器来响应在运行时的JavaScript调用,它通过用户与包装的HTML交互,允许在OSMF的媒体播放器上的操作,以编排在预定于HTML页面元素的变化。一个基于OSMF媒体播放器控制HTML的例子可能包含在不断变化的HTML网页中(见图2)。
图2 丰富的媒体体验和广告
在抽象什么是MediaElement中,OSMF还介绍了特征类的概念。在OSMF抽象逻辑中,特征类定义了每个MediaElement的能力。通过OSMF类MediaElement的常量能够发现对OSMF中一些标准类的好结论。例如,这两个类VideoElement和AudioElement有LoadTrait,PlayTrait和SeekTrait的特点。但是,由于没有DisplayObject的实例AudioElement,AudioElement没有ViewTrait,而VideoElement有。
为了支持将媒体播放器的创建分析,OSMF还包括诸如BeaconElement MediaElement的子类。
三、播放器的例子
OSMF包括很多可运行OSMF的例子,这些例子能够通过基于OSMF例子播放器来执行(见图3)。播放器例子的源代码包含在OSMF子版本库中。一个播放器例子编译的版本是可在线运行。
图3 OSMF例子播放器
该示例加载了一些OSMF播放器的示范例子(包括说明错误条件,如加载失败的和无效媒体的网址错误)。 每个例子可以通过在左侧列表选择播放器来运行。每个例子都会在你选择一个播放器后显示在右上角。
OSMF的例子播放器能够很快的找出OSMF的更多应用能力。
四、何去何从
随着OSMF出现,Adobe正在改变我们的媒体和视频播放器。 通过创建一个强大的开放源码媒体播放器的开发框架,致力于Flash Player的开发者现在可以更快地创建比以往具有更多功能、更多服务的视频播放器,而且成本也非常合理。
如果你是一个媒体播放器开发人员,你的下一个步骤是从这里开始。下载OSMF来获得最近OSMF发布的更多信息- 源文件的压缩包和发布的PDF注释。为了建立你的开发环境,按照在发布注释中“开始说明文档”的介绍来做。这些说明提供了很多非常重要的细节,它在Adobe Flex Builder 3和Flash CS4中应用OSMF。
为了更进一步的理解OSMF介绍的新的类和内容,请看OSMF开发指导和ActionScript 3语言的参考,包括开源媒体框架的API。
关于个性化的支持,可以参考从事OSMF的团队。参与该团队既可以选择公共支持OSMF的论坛也可以选择OSMF用户组。