kaltura/mwEmbed — pull request #905 by mdale (2014-08-14 17:00:15+00:00)
Title: FEC-1764 Support source type switch in playbackRate selector

* Effort was to support initial use of flash interface and enable the
rateSelector plugin which results in an “interface swap” as the player
switches to native playback for playback rate control.
* In playBackRateSelector itself: added support for interface swap at
setSpeed time, event propagation is disabled during switch.TODO we may
want to move some of this logic into shared methods, but the native
selection player criteria did not (yet) cleanly integrate with existing
EmbedPlyer swap logic methods
* Added test file with test and description of issue
PlaybackRateFlashSwitch.qunit.html

* Akamai media anlytics appears to re-bind playerLoaded so any player
interface switch would result in double binding, work around added to
check interface type for KDP call, but in the future all events bindings
should be namespaces with the base this.bind method ( from inheriting
base plugin class ) and cleared on PlayerLoaded event.
* EmbedPlayerNative: css('visibility', '') was added to Native embed
display, appears kPlayer was hiding video element while not restoring in
embed flows.
* MediaElement; refactored native source selection had extra conditional
for native lib check relative to native sources already identified right
above it.
* MediaElement: added selection of native playback support. Note a more
complete refactor of the autoSelect method would make it easier to
support more robust native player selection logic, but as presently
implemented will at least not result in broken behavior, but may have
issues in edge cases such as HD DRM and SD progressive.
* MediaElement: added “getNativePlayableSources” method used in
autoSelect logic. As mentioned above autoSelect is pretty long scary
method we should break up more of the filtering / selection logic into
methods.
* MediaPlayers: Renamed “defaultPlayer” to “getDefaultPlayer”, its a
getter and should be named as such. Per normalize events ticket ( !!!!!
) we should keep track of all these deprecated methods and events and
when we go to version 3.0 remove extra code ( also remove
kWidget.deprecatedGlobals )
* MediaPlayers: mimePlayers is always an array no need to check length,
removing extra conditional nesting is almost always a win.
* MediaPlayers: added getNativePlayer method to get native players for a
particular mimeType