|By Janice J. Heiss, December 4, 2008|
With JavaFX 1.0, Sun launches an expressive, rich client platform for creating and delivering rich Internet applications (RIAs) across all the screens that consumers use. Building on the proven Java platform, with an easily leveraged installed base in the billions, JavaFX offers distinct advantages to web developers, designers, and Java developers. Designed to enable the easy creation and deployment of RIAs with audio, video, and other rich media, the JavaFX platform eliminates complexity and cost by enabling developers and designers to collaborate more efficiently with a common set of tools across devices and platforms. JavaFX works across the browser, the desktop, and mobile screens without forcing developers to write multiple application interfaces using divergent technologies. Web designers and developers who have been constrained by the limitations of the browser-based environment can work with rich media content free of the browser.
A key part of the promise of JavaFX 1.0 lies in JavaFX media technology, which is designed to simplify the integration of audio and video media into applications built with JavaFX 1.0. JavaFX makes it easy to integrate video, audio, graphics, animation, and rich text. It also supports cross-platform codecs and native video formats.
We met with Tony Wyant, Sun's lead engineer for JavaFX media, to get an understanding of where JavaFX media might take us.
What problems is JavaFX media technology meant to solve?
"Instead of video being relegated to a rectangular area within a page with its typical controls, I'd expect to see a lot of very creative new ways that video can be navigated, controlled, and displayed."
Lead Engineer for JavaFX Media, Sun Microsystems
The JavaFX media APIs are designed to make it extremely simple to incorporate audio and video media into applications built with the JavaFX technology. It should take only a few lines of FX Script to add audio or video into an application.
What would occur if JavaFX media technology were to take off in the way you envision?
Success would be having the next generation of media sites deploy using the JavaFX media technologies. JavaFX Script offers a variety of features that afford highly interactive and visually interesting experiences. With this technology, video would become more integrated into the application, both in terms of displaying and controlling. Instead of video being relegated to a rectangular area within a page with its typical controls, I'd expect to see a lot of very creative new ways that video can be navigated, controlled, and displayed.
Although there is a lot of audio and video content on the Web today, there will be much more next year, with rapidly changing media technology. There are incredible opportunities for new players in this space.
How does JavaFX media compare with what's available today with Adobe Flex, Flash, Illustrator, Photoshop, and Microsoft Silverlight?
It's similar to what's available with Flash and Silverlight, but we feel that it's better in that it provides both a cross-platform video format and plays the formats available on the client machine. The FXM media format can be played wherever JavaFX can be played. Furthermore, when running on Windows, FX Script can play all the media formats that Windows Media Player can play, and on the Macintosh, all the formats that QuickTime can play. This means that you can encode media into the FXM format, which can be played wherever FX Script is deployed, and that the same APIs can be used to play content that is local to the device.
We've tried to strike a balance between having a simple easy-to-understand API and providing enough features and flexibility to deliver compelling applications.
Tell us what codecs are supported.
On all platforms, we support our cross-platform format (
FXM), which contains On2's VP6 video codec and MP3 for audio. On Windows, we also support a variety of formats and codecs handled by DirectShow, such as
wmv. On the Macintosh platform, we offer support handled by QuickTime, such as
On what platforms or profiles will video be supported by JavaFX 1.0 SDK?
Mac and Windows. We're working on getting a Linux and Solaris version out soon.
On what platforms (for example, Mac, Linux, Windows, Solaris) and profiles (desktop and mobile) will On2 be supported?
Currently, Mac and Windows are supported. Linux and Solaris will be supported in a future release. I'm not sure what the current plans are for support on mobile.
What can you tell us about the demos and samples that are available?
Not much right now, but many of the JavaFX samples and demos will incorporate video and will be available when we launch the product. Check out the Samples gallery.
Developer Joe Winchester, writing about JavaFX in general in JDJ, said: "My opinion of FX is that it is a technology that could really change the way programs are created." He said that in programming, "[the] Holy Grail is to allow the designer to describe the application and its interface the same way an architect designs a building, and for the builders and programmers to just make sure the thing doesn't fall down when it gets windy or too cold in winter." How might this apply to JavaFX media?
The JavaFX media APIs were designed with other components in the JavaFX runtime so that they integrate seamlessly into the user interface. Their attributes and behaviors are described in the same manner as other JavaFX components, so it's as simple to express how video is to be integrated as it is a rectangle, an image, or other graphical objects.
How does enabling media in JavaFX help the Java developer community?
Media has been a missing feature from the Java APIs. With JavaFX, Java programmers can now incorporate video into their applications. The underlying media functionality of the JavaFX media APIs is written in Java, and we plan on releasing this as a Java API in the near future. In the meantime, integrating Java and JavaFX is straightforward. Any Java developer doing extensive UI and media work should consider looking into using FX for those parts of their application.
What is the most exciting feature of media in JavaFX?
Although the media elements are somewhat simple in JavaFX, what's most exciting is having them incorporated into the JavaFX platform. For example, when animations, effects, and transformations are applied to video, a new dimension is added to the experience.
How can developers take advantage of current media-encoding tools to create media that is supported on JavaFX?
For the cross-platform format (
FXM), try the Flix tool from On2 technologies. For the native formats, there are a variety of third-party tools for encoding content, such as Apple's QuickTime Pro, as well as open-source projects such as FFmpeg.
What's the significance of using the On2 codecs, and when will On2 support be available in JavaFX?
"You don't have to encode video separately for the Macintosh and for Windows. It allows the content developer to encode once, play anywhere."
Lead Engineer for JavaFX Media, Sun Microsystems
The On2 codecs offer a high-quality video codec that is available across all the platforms that JavaFX supports. You don't have to encode video separately for the Macintosh and for Windows. It allows the content developer to encode once, play anywhere.
What are the licensing and cost issues for On2?
There are no licensing costs to our end users, though content developers may need to license tools for encoding into this format.
Aside from On2, what are the codecs that Mac, Windows, Linux, and Solaris have in common?
Without adding third-party decoders, there are no common modern formats.
Are there any unimplemented video features on any of the platforms or profiles in JavaFX 1.0 SDK?
There are some features that may depend on the video format and protocol, such as seeking and playing in reverse, which may not work with all platforms and formats.