分类:
2008-09-11 14:34:34
对媒体——尤其是视频的支持不足,对大多数开发者来说,并不是什么秘密。对有些开发者来说这是个严重的问题,特别是当有些人选择Flash、Flex、Silverlight、Adobe Apollo/AIR及其它技术来构建新的RIA(Rich Internet Applications)应用时。所有这些平台将媒体和视频视为首要功能,这几乎是其技术的基础。
最近,有人 认为需要修正其对媒体和视频的支持,否则(很快)就会失去真正参与到桌面和RIA应用领域的最后机会。比如,Chris Adamson在一个由三部分组成的文章中、随后的JavaOne上的讲稿以及最近对该问题的总结中表达了这样的观点:
Flash是桌面Java一个被低估的竞争对手。它有十分超凡的能力,可以创建令人炫目的Flash应用。以至于Adobe注重资以开发一个该工具的副本,而Sun也很难将其拱手相让(嗯,至少IBM可以)。为什么?主要因为它处理媒体也相当好,并且它正在帮助培育一代基于Web的JavaScript/ActionScript开发者,他们视Java为“上一代编程语言”,就像我们这些10年前使用Java语言的人当时看待语言一样。
因此对那些人,以及所有对Java多媒体支持感到沮丧的人们来说,Chet Haase关于Java媒体组件(Java Media Components——JMC)的条目可能会感到一些宽慰:
“这个有望在Java SE 7中包含的新特性,为Java应用提供了基本回放的支持。最终,JMC打算支持视频捕获及分组(streaming)能力。”
Java媒体组件将通过引入对内嵌本地播放器的支持作为起点(如: Media Player,Flash,Quicktime):
其思想是为回放控件曝露一个简单的API(如:play,stop及rewind),从而允许Java应用程序通过任何在本地系统上可用的资源来控制特殊内容的回放。例如,系统上回放AVI文件会弹出Windows Media Player.而且,本地播放器将通过GUI组件曝露出来,你可以将它集成到你的应用程序界面的其余部分。将来还有(取决于底层本地支持)选项,是选择曝播放器的本地组件(如Play按钮),还是允许开发者将其自己的组件包裹在播放器组件上。
这种本地包装功能是整个JMC项目里最简单的部分。其主要工作是设计简单的API以及针对不同平台的各种播放器的胶水代码。实际上,我们已经有了几个播放器的原型,包括Windows Media Player和Flash.第二个努力方向是创建可在所有平台上使用共同形式的Java播放器,这样无需担心本地安装了什么样的播放器。更多的构思和前瞻性特征还包括:允许Java开发者访问视频流中的像素数据,或视频捕获及分组。