OSMF中支持提示点
OSMF,全称是Open Source MediaFramework,开源媒体框架,以前的项目代号是Strobe。其中Akamai和Adobe将基于此OSMF框架共同开发Open VideoPlayer应用。OSMF目的是为了让开发者可以更加容易的创建在线媒体播放应用,同时可以轻松扩展媒体应用之上的广告,监控,报告和内容交 付层面的功能。OSMF开源媒体框架包含了针对合作伙伴使用的API,可以用来在使用OSMF开发的媒体应用上添加功能插件扩展。 OSMF v0.7版包括新的功能有允许你创建,检查,和对临时的元数据作出响应,无论是在媒体编码时嵌入的还是运行时添加给媒体元素的。 由于提示点从本质上讲是一种临时的元数据,所以我们决定为临时元数据提供一个通用的解决方案,而不是限制自己的视频内容中的提示点。因此,在OSMF中临时数据可以应用于任何媒体元素;你不只限于视频内容的提示点。 提示点的类型:
Event 和 Navigation提示点是在编码时添加,而ActionScript提示点是在运行时添加。 Easing Your Pain解决难点 在OSMF中新的功能支持临时元数据,解决了一些难点,使我们可以基于这个核心功能构建其它功能,如关闭字幕。解决的具体难点如下: 1.用CS4进行F4V编码或是以前版本不能在流媒体中监听提示点事件,你需要从onMetaData()处理器提取提示点信息并创建一个计时器来监视提示点再广播一个自定义事件。 2.为了使你的播放器对ActionScript提示点作出反应,如第1项所述,你必须编写一些代码,这可能不是小事,取决于你是否优化了计时器处理器方法,支持搜索等。 F4V文件是H.264编码。为了响应嵌入式提示点事件,你需要读取onMetaData()处理器中的一组提示点数据,创建一个计时器,编写一些代码来监视NetStream的time属性再广播自定义事件。 ActionScript提示点,你需要做同样的事情,而且确保提示点已存储到你的内部收集器中。 OSMF 0.7版中一个新的metadata facet类TemporalFacet支持处理临时元数据。 如果你不熟悉OSMF元数据,这里是一个简短的介绍(有关更多的资讯,您可以在这里阅读规范http://opensource.adobe.com/wiki/display/osmf/Metadata+Support))。
新类 这些新的类实现了支持新的临时元数据,下面是一个简短的描述: org.osmf.metadata.TemporalIdentifier 该类是临时元数据的基类,它定义了time 和 duration属性。新的CuePoint类是从该类扩展。 org.osmf.metadata.TemporalFacetEvent TemporalFacet类广播该事件,表示特定的事件"position reached" 和 "duration reached"。 org.osmf.metadata.TemporalFacet 这个类主要是管理临时元数据。它管理与媒体元素相关的TemporalIdentifier类型的临时元数据,并且当媒体元素的播放头位置与TemporalIdentifer对象的集合中time值相匹配则广播TemporalFacetEvent类型的事件。基本上,在你的播放器中编写的代码需要处理F4V事件提示点和ActionScript提示点。 该TemporalFacet类含有添加与监视TemporalIdentifier对象内部集合中的time值的优化算法。以下是优化算法的一些方式:
org.osmf.video.CuePoint 该类扩展自TemporalIdentifier类,为视频提示点提供一个更标准的提示点模型。该类包含的属性有:name, type和parameters(parameters属性返回在编码时或运行时的一个键值对的数组)。 提示点示例应用程序 在OSMF 0.7版提供的提示点样例应用说明如下: 加载一个视频并填充从onMetaData()处理器中提取的嵌入式的Event和Navigation提示点数据(示例应用的右上角)你可以用time排序表格。该表格的目的是向你展示事件可以收到,允许你Navigation提示点导航和证明TemporalFacet类工作正常。 点击表格中Navigation提示点视频会到达这个位置(key frame)这代表可以用于章节或序列。 显示所收到的ActionScript 和 Event提示点(应用程序的左下角)(运行时TemporalFacet类广播的事件)。 允许你在运行时添加ActionScript提示点(应用程序右下方),查看这些事件被激发。当你点击“Add”按钮你将会看到ActionScript提示点被添加到表格中(注意你可能需要点击Time列强制排序)如果你输入一个重复的值只是保留最后一个。 如何监听提示点 第一步监听元数据facet被添加到你的媒体内容:
唯一命名空间中创建一个新的TemporalFacet,为视频元素的元数据添加facet,接着将提示点添加到facet。
|