| The JavaFX 1.0 SDK Update 1 release includes bug fixes and enhancements to improve media performance and address video playback issues. |
The JavaFX 1.0 SDK Release Notes can be found here.
Contents
Enhancements
- This release contains performance enhancements that enable smoother playback of large video files on both Mac OS X and Microsoft Windows platforms. It contains functional changes that enable video to be played as it progressively downloads from a remote server through HTTP requests.
- Progressive downloading is now enabled for WMV, FLV, and FXM video files on the Microsoft platform. The video startup time on the Microsoft Windows platform has been improved in this release.
- Forward-seeking is now enabled for FLV and FXM files on both Mac OS X and Microsoft Windows, when seeking within the currently downloaded buffer. Seeking beyond the buffer is not currently supported.
Usage Tips
- To enable progressive downloads, the visible properties of both the
MediaPlayer.fx and Media.fx components can be updated asynchronously and might require changes to your application logic for correct operation with low bandwidth and high-latency media sources. For instance, on the Media.fx object, properties such as duration, width, and height might not contain meaningful information immediately after the source URL is set. To read those properties correctly, bind your own variable to those properties and provide an onReplace function to read the value after it becomes available. Likewise, your application should provide logic that waits for those particular values to be available before you set size properties on your SceneGraph nodes containing such content.
- Additional programming considerations are needed for an application that uses progressively downloaded media content. Specifically, when the network and/or server can't stream the media content at a bit-rate greater than the encoded bit-rate of the enclosed streams, the network buffer might underflow, and visible playback pauses. Your application can monitor this condition by binding to the
status property in the MediaPlayer component with an onReplace function that looks for a PAUSED status that is not requested by your application. For best results your application should allow the bufferProgress property of the MediaPlayer component to be at least 5 seconds ahead of the MediaPlayer component's currentTime property before allowing play to resume programmatically or through user intervention.
- Media and MediaPlayer objects can consume substantial native resources as a function of your media content bound through an initial URL. To explicitly manage the lifetime of those resources, do one or both of the following:
- If you do not intend to use the
Media instance in a MediaPlayer, the source property of each Media instance should be set to NULL after the properties have been asynchronously updated. This releases any native resources that have not been transferred to a MediaPlayer instance.
- Set the media property of the
MediaPlayer to NULL. This releases any native resources which have been transferred from a Media instance to that MediaPlayer instance.
Issues
- To improve the streaming of HTTP requests on both the Mac OS X and Microsoft Windows platforms, the duration information should be provided in the Media metadata at the beginning of the media file.
- When streaming HTTP requests on the Mac OS X platform, the ability to have an accurate buffer progress bar is affected when the duration information is not provided in the
Media metadata. The duration of a Media is computed dynamically as a function of the incoming buffers. On the Microsoft Windows platform, the behavior is undefined.
- The SimpleVideoPlayer sample provided in the samples directory of the SDK has not been updated to handle progressively downloaded media. An updated version of this sample can be found on the SimpleVideoPlayer page.
- In Mac OSX 10.4 with JDK 1.5.0_16, there is a URL resolution issue with Java Web Start which prevents the launching of some JavaFX applications, which rely on externally referenced graphics, including the Java Store. There is no workaround at this time.
The JavaFX SDK 1.0 Update 1 release contains bug fixes for media components and sample applications. The following Media bugs listed in the JavaFX 1.0 SDK Release Notes have been fixed in this release.
- Playing multiple FLV videos simultaneously on Mac OS X with
REPEAT_FOREVER set can cause REPEAT to fail for some videos.
- Playing high resolution or large media files on a low bandwidth network can cause the playback to stop.
- WMV videos playing over http on Windows do not repeat when the
REPEAT_COUNT setting is used.
- Playing multiple MP4 or MOV videos simultaneously can increase the CPU consumption to over 90% on Mac OS X.
- Buffering content does not work on Windows.
Detailed information is available in the Jira Bug Database. You must have a Jira account to access this database. If you don't have a Jira account you can register for one here.
|
|