Version 1.3 introduced many enhancements to the API and is backwards compatible. However the following is worth taking note of:
Version 1.2 introduce many enhancements that may affect existing code. The effect may not be much but it is worth taking note of.
The library now requires GWT 2.0 or later. GWT has come a long way since version 1.6 so this may not be an issue, as most GWT projects are based on 2.x already.
WinMediaPlayer widget now requires the Windows Media Player plugin for Firefox in non-IE browsers to guarantee programmable control. Since this may not always be required, two operating modes are defined - the embed-only and programmable modes.
In embed-only mode, the widget is expected to be used for rendering only without any programmatic control. Consequently method calls on the widget in this mode may fail and such errors/failures are suppressed.
In programmable mode - the default, the widget throws PluginNotFoundException in non-IE browsers without the Windows Media Player plugin for Firefox.
The following improvements on version 0.6 may require minor tweaks to existing code. Such changes however, should only take a few minutes to rectify.
The library is now split into different modules consisting of:
Consequently, existing codes that inherits the com.bramosystems.gwt.player.BSTPlayer module will now need to inherit:
com.bramosystems.oss.player.core.Core - if using only the base player widgets (such as WinMediaPlayer, QuickTimePlayer etc)
com.bramosystems.oss.player.capsule.Capsule - if using the sample custom sound player
com.bramosystems.oss.player.flat.FlatVideoPlayer - if using the sample custom video player
GWT 1.6 introduced a new EventHandler system which makes the development of complex, decoupled applications easier. Inline with this, the MediaStateListener class has been replaced with the following handlers in the com.bramosystems.oss.player.core.event.client package:
| PlayerStateHandler | handles events that are fired when the state of the player changes |
| PlayStateHandler | handles events that are fired when the state of media playback changes |
| MediaInfoHandler | handles MediaInfoEvent fired whenever media metadata is available |
| LoadingProgressHandler | handles events that are fired when the progress of a loading media changes |
| DebugHandler | handles events that are fired when info/error level messages are generated by the embedded plugin |
Also, VolumeChangeListener used for volume control is replaced with VolumeChangeHandler, while SeekChangeListener used for seek controls is replaced with SeekChangeHandler.
Existing codes that use:
player.addMediaStateListener{ new MediaStateListener() {
...
}};will now need to do:
player.addPlayerStateHandler { new PlayerStateHandler() {
// if interested in player state changes
}};
player.addPlayStateHandler { new PlayStateHandler() {
// if interested in play state changes
}};
etc... Please check the API for details.