Calling all Robots: JW Player SDK for Android 2.0!

Today we are releasing a major update to our JW Player SDK for Android. We completely rewrote the SDK to make it easier than ever for developers to add world-class media playback to any Android app. (Don’t worry though–we’ve provided detailed documentation of the API changes and code examples, so upgrading to 2.0 is a breeze.)

 

2.0 also marks a significant step toward our goal of “One JW Player.” One JW Player is a hybrid software design that we created while developing our JW Player SDK for iOS earlier this year. The developer-facing APIs in the SDK are native to the target platform, but they are wrappers around our flagship JW Player 7 JavaScript/HTML5 library (jwplayer.js). The core functionality of the SDK (player customization, captions, analytics, etc.) is powered by JavaScript, but all the developer-facing APIs in the SDK are native classes (Java, in the case of Android).

 

Here’s a diagram to illustrate:
android-2-0

Even though the SDK is a wrapper around our JavaScript library, it is not just a “simple” JavaScript wrapper. It also features an interface to provide native media playback. As a result, we still achieve very high performance by doing the actual video decoding and playback in native code.

 

The hybrid design gives us a powerful mechanism for keeping customers’ apps current with the latest JW Player features and fixes. Because the core functionality is written in JavaScript, we are able to provide over-the-air fixes for critical issues in the core library, saving customers the time and expense of updating their apps in the Google Play store. Even better, it spares their users the hassle of updating the app on their device. We can do this while still achieving the performance of a fully native SDK because our video decoding and playback is done using native media playback engines and hardware codecs (when available on the device).
In the past few years, JavaScript and HTML5 have matured into a powerful media application platform and are being widely deployed in browsers as well connected TVs and other streaming devices. We intend to employ the “One JW Player” model beyond iOS and Android to other devices that support HTML5 technologies.

 

CSS Customization and Responsive Player for Mobile

One of the many benefits of this “One JW Player” architectural change is our ability to leverage JW Player 7 features such as CSS skinning and the responsive player UI. In 2.0, you can customize your native Android apps using the same CSS skin as your JW Player for web and JW Player SDK for iOS apps. Changes you make to your CSS skins are immediately reflected in your app’s UI. What’s more, the player optimizes its dimensions and layout for mobile screens and high-DPI resolutions, as illustrated below:

JW7-mobile-responsive

 

Other New Features in 2.0

Here are some other cool new features in this release:

  • WebVTT & DFXP/TTML caption support
  • Programmatic player instantiation and configuration
  • Multiple player instances per view
  • New JWPlayerFragment class simplifies implementation by managing the JWPlayerView lifecycle and fullscreen handling
  • Custom logo overlay
  • A public open-source demo app on Github to get you started
  • Markdown-generated developer guide and API documentation in our new Developer Portal. No more PDF!
  • Complete 2.x Release Notes now available
  • Upgrading to SDK 2.0 Migration Guide

 

Our mobile team did an incredible job with this release, and we encourage Android SDK customers to update their apps to 2.0. If you are a JW Player SDK customer, you will see the 2.0 SDK download link in your JW Player Dashboard today.

 

Enjoy!
JW Player Mobile Team