The primary goal of version 2 was to introduce support for Windows Phone 8.1 and with it, the new universal project templates for Windows and Windows Phone. However, we also used this opportunity to add a number of other significant improvements to the framework. This page offers a mid-level description of all the changes in v2 of the player framework.

Platform support

Windows Phone 8.1 (Windows Phone Store app) support for Xaml/C#/VB.NET apps

The core component and many of the plugins in the player framework for Windows Phone 8.1 are now built as Universal class libraries and therefore have all the same features, APIs, and behaviors as the Windows 8.1 version. Some of the optional plugins shipped with the player framework required subtle differences for the phone version and therefore diverge in some ways from their Windows Store counterparts. However, in these cases code linking was used and we strived for API parity when appropriate to make sure your universal app can use the same code regardless of platform in almost all cases. Lastly, there is a new default style that adapts to screen size to ensure your app looks good on all devices and form factors (see below for additional details).

Windows Phone 8.1 (Windows Phone Store app) support for JavaScript/HTML apps

There is now a universal JavaScript version that works with Windows 8.1 and Windows Phone 8.1 universal or solo apps. Under the hood we use the same JavaScript and CSS for both platforms. Therefore, you can expect all the same features, APIs, and behaviors as the Windows 8.1 version now on Windows Phone 8.1. Additionally, there is a new theme available that adapts to screen size to ensure your app looks good on all devices and form factors (see below for additional details).

Windows Phone 8 & 8.1 (Silverlight) support

We continue to include a Windows Phone 8 Silverlight version and have tested it and made subtle modifications to this version to ensure that it works great when referenced in an app that target Windows Phone 8.1 Silverlight. Although there is not a Windows Phone 8.1 Silverlight specific version, that doesn't mean there aren't new features for both Windows Phone 8 and 8.1 Silverlight apps. Because the player framework uses a common code base, all the new features made in v2 (as well as any breaking changes documented below) apply to this version as well. We even went as far as porting the new universal and classic themes available in the new universal version to ensure you can ship Windows Phone 8 apps that matches the look and feel of a Windows Phone 8.1 and/or Windows 8.1 store app.

Windows Phone 7.5 support

We continue to keep the Windows Phone 8 version in sync with the Windows Phone 7 version for those that wish to update their apps for Windows Phone 7. However, unlike the Windows Phone 8 Silverlight version, the Windows Phone 7 version does not include the optional new universal theme. Note: The Windows Phone 7.5 version of the player framework is shipped as source code only since Visual Studio Extension SDKs cannot target this platform.

Windows 8.0 (Xaml and HTML versions)

Because the player framework uses a common code base, all the new features made in v2 (as well as any breaking changes documented below) apply to the updated Windows 8.0 version as well. We even went as far as updating the default theme universal theme. If you would like to continue using the previous default theme, you can easily include the 'classic' theme instead to continue with the previous default look and feel.

Windows 8.1 support for both Xaml and HTML apps

The Windows 8.1 (Xaml and HTML) versions of player framework have now been retargeted to support universal apps. However, that doesn't mean you have to create a universal app to use it. Apps that solely target Windows 8.1 only will continue to work great after updating the player framework without accepting a single compromise from this change. The core library in the player framework already fit entirely within the common set of APIs available to universal components and therefore did not need to be altered to comply. Some of the optional plugins shipped with the player framework required subtle differences for phone vs. Windows; for these plugins, we continue to ship 2 versions: one for each platform. Lastly, there is a new default style that adapts to screen size to ensure your app looks good on all devices and form factors (see below for additional details). This is the same default theme used in Windows Phone 8.1 store apps.

Universal app support for both Xaml and HTML apps

See Windows 8.1 notes above.

New features

Besides support for the new platforms mentioned above, we have also added some important new features in this release.
  • New default/universal theme. This theme is designed to be more touch friendly and scale to look and behave good on all form factors and devices. Elements within this theme can be easily removed and placed outside the player framework. This is especially useful for moving buttons into your appbar. This theme is the new default theme for Windows 8.1 and Windows Phone 8.1 apps and is available to optionally use in your Windows Phone 8/8.1 Silverlight and Windows 8.0 apps.
  • "Classic" theme available for all Windows Phone versions to make control look like the IE video tag when controls are enabled.
  • "Entertainment" theme available for all Windows Phone versions to make control look like the Microsoft Windows 8 entertainment app guidelines.
  • Support for the new Smooth Streaming Client SDK 2.5 for Windows Phone 8.
  • New sample apps for Windows Phone 8.1 demonstrating all the same features as the Windows 8.1 sample apps.
  • Improved styling support for the Xaml version:
    • MediaPlayer.ControlPanelTemplate is a new property used to expose the template used by the control panel and offer an simpler way to template the visible parts of the player.
    • All buttons in the player framework now use behaviors to "light up" their respective feature. In the previous version each button was implemented as it's own custom control that inherited Button making it impossible to cast to the AppBarButton. Now you can just attach a custom behavior to any standard AppBarButton or Button control to turn it into a functioning player framework button.
    • All button glyphs are now defined in resource files making it easy to override or localize. This also makes it possible to use non standard Segoe UI Symbol font icons in the player framework.
    • New ControlPanel visual states: Orientation and Compact
    • New property: ControlPanel.CompactThresholdInches to determine when Compact mode is triggered by size in inches.
    • New property: MediaPlayer.IsFullScreenEnabled & IsFullScreenVisible
    • New property: MediaPlayer.IsZoomEnabled & IsZoomVisible
    • New button to allow user to zoom (letterbox vs. crop) if the video aspect ratio does not match the screen. Set new IsZoomVisible to true to enable. Note: Not available in Windows 8.0 version.

Breaking changes

  • Linear ads now use a button for ad click-throughs instead of the entire screen being clickable. More friendly for touch devices where users often tap to show controls. Note: this new behavior is optional and the old behavior can be revived via some simple code if desired.
  • Both the JS and Xaml version resource files now contain the default text for the ad click through button in an entry called "AdLinkLabel". Apps that have already provided custom resource localization should add this new entry to their resource files.
  • The resource files for all Xaml versions now contain snippets of Xaml to represent each icon glyph. This allows localization of the glyphs such as is already supported in the JS version.
  • The default universal theme for the Windows 8 and Windows 8.1 Xaml versions has changed. To continue keeping the previous default look and feel in your app, use the "Classic.xaml" theme instead.
  • JS: changed default autohideBehavior from preventDuringInteractiveHover to all. Causes control panel to stay on screen while the app is paused.
  • JS: changed default interactiveDeactivationMode from soft to all. Allows the user to tap to dismiss the control panel.
  • JS: changed default autohideTime to 2 seconds.
  • Xaml: changed default AutoHideInterval to 2 seconds.
  • JS: renamed isDisplayModeVisible/Enabled to isZoomVisible/Enabled. This is for consistency with the Xaml version and because it better reflects the underlying video tag feature being invoked (msZoom) when the user clicks this button.
  • Xaml: Design mode now prevents autohide from occuring to make it easier to style.
  • Namespace changes. Note: all namespace changes are in the WinRT objects and not in the plugins therefore apps rarely call APIs that reside here directly from their code.
    • Microsoft.VideoAdvertising -> Microsoft.Media.Advertising
    • Microsoft.AdaptiveStreaming -> Microsoft.Media.AdaptiveStreaming.Helper
    • Microsoft.AdaptiveStreaming.Dash -> Microsoft.Media.AdaptiveStreaming.Dash
    • Microsoft.AdaptiveStreaming.Analytics -> Microsoft.Media.AdaptiveStreaming.Analytics
    • Microsoft.Analytics -> Microsoft.Media.Analytics
    • Microsoft.Analytics.Advertising -> Microsoft.Media.Analytics.Advertising
    • Microsoft.Analytics.AudienceInsight -> Microsoft.Media.Analytics.AudienceInsight
    • Microsoft.Analytics.SiteCatalyst -> Microsoft.Media.Analytics.SiteCatalyst
    • Microsoft.AudienceInsight -> Microsoft.Media.AudienceInsight
    • Microsoft.TimedText -> Microsoft.Media.TimedText
    • Microsoft.WebVTT -> Microsoft.Media.WebVTT
  • Xaml: default template changes. If you have customized the default control panel template you will notice that there have been changes here that are likely to prevent your custom template from working without re-creating the template or adjusting for these differences. The most notable is that all buttons are now standard buttons that use attached properties to provide their behavior. This was to allow any kind of button (Button, AppBarButton, or a custom Button control) to be used to host a player framework button. This also makes it easier to move player framework buttons out of the control and put them in the appbar for example.

Last edited May 19, 2014 at 7:10 AM by timgreenfield, version 9