Mobile SDK for Android v4.27.0 Release Notes

4.27.0 Released 2017-08-15

New Features and Enhancements

  • The player now includes descriptions for when Accessibility is enabled in the device. The current working UI elements include the following buttons: Play/Pause/Replay, Full Screen, and More Options. Additionally, elements not used for controlling the player are hidden from the Accessibility mode.
  • This version of the Android SDK incorporates the Pulse SDK v2.4.17.14.0.
  • There is a new RecyclerViewFullScreenManager class in the Ooyala SkinSDK, which can help users implement full screen successfully if the player is in a RecyclerView container.

Resolved Issues

  • Fixed an issue where the app would crash if the current item to be played by the OoyalaPlayer became null during player setup. The app now remains running but an error will be generated by the OoyalaPlayer.

Known Issues

  • When Accessibility is enabled in the device, there are the following known issues:
    • The user is not able to interact with the seek bar or the volume bar. However, the user still can change the volume using the device volume buttons.
    • During ad playback, the user cannot play or pause the video until the ad mode is completed.
  • For Android OS v6 (API Level 23) and earlier, if the player is in a RecylerView container, the user may notice a delay in the video rendering when going in and out of full screen mode.
  • Ad position, when specified as % of total video duration, is not supported in the Android SDK.

4.26.0 Released 2017-07-03

New Features and Enhancements

  • A new OoyalaPlayer method called release has been added. It releases the resources of the player. Use this method with caution, however, as playback will cease to work after release is called.
  • For the Sample Apps SDK, all of our apps write to the external SD card for internal QA purposes. In Android 6.0 and above, the app will ask you for permission to write to your SD card. If you choose to deny permission, playback will still continue but some logs will not be stored. See https://developer.android.com/training/permissions/requesting.html.
  • In the Android Skin SDK repo, the README has been updated to document the latest supported versions. See https://github.com/ooyala/native-skin.

Resolved Issues

  • Fixed an issue with DefaultOoyalaPlayerFullscreenControls in which the spinner bar was appearing when the player was playing content.
  • Fixed an issue with the Pulse SDK, in which an empty clickthrough URL for an ad would crash the application.
  • Fixed an issue with Ooyala IQ Analytics integration in which passing a null video to IQAnalyticsPlugin would crash the application.

4.25.0 Released 2017-05-24

New Features and Enhancements

  • Google IMA libraries have been updated to version 3.7.1 for the Core SDK.
  • Core SDKs now use version 25.3.1 of the Android support libraries.
  • Ooyala Player now uses ExoPlayer by default. ExoPlayer version 1.5.7 is currently supported.
  • An issue has been fixed where the Core SDK would crash upon receiving IMA ad rules with a null position. (The position indicates whether the ad is preroll, midroll, or postroll.)
  • User information is sent to our Analytics engine. This applies when OPT is set in an app. This resolves a known issue involving XDR (cross-device resume).
  • A Requirements and Caveats section has been added to the README of the android-sample-apps git repository.
  • Android sample apps now use Android Studio version 2.3.1.
  • Android sample apps now use Gradle version 3.3.
  • Android sample apps now use Android Gradle plugin version 2.3.1.
  • Android sample apps now compile against Android N.
  • Android Skin SDK has been updated to use React Native version 0.35.0.
  • The Android Skin SDK project now uses Android Studio version 2.3.1.
  • The Android Skin SDK project now uses Gradle version 3.3.
  • The Android Skin SDK project now uses Android Gradle plugin version 2.3.1.
  • The Android Skin SDK project now compiles against Android N.
  • Android Skin SDK now includes Japanese language support in skin.json.
  • The fullscreen feature has been reimplemented for Player using the Android Skin SDK. It leverages Immersive mode in Android.
  • A README has been added to the DTOSampleApp. It lists known caveats.
  • An app has been added showcasing our player as items in a RecyclerView. It is located at PlaybackLab/FullscreenSampleApp. Customers can use the app to understand how the player currently works in a RecyclerView.
Known Issues
  • The fullscreen feature may not fill the entire screen for versions of Android below 4.4.
  • FireTV remote control interactions are not officially supported with Player SDK UI controls.
  • Suppose you are using an ad set created with the Backlot UI, with its ad position set to Ad Rules, in combination with the OoyalaPlayer method setEmbedCodeWithAdSetCode. If you also choose to integrate IMA ads, the ad will not play. If you wish to use the setEmbedCodeWithAdSetCode method, you can try to select any other ad position in the ad set to make the ad play. We recommend overriding the ad set configuration by using the IMAManager's setAdUrlOverride method. Refer to this page for detailed documentation on setEmbedCodeWithAdSetCode, and this page for detailed documentation on setAdUrlOverride.

4.24.0 Released 2017-03-28

New Features and Enhancements

  • The Pulse library has been updated to support changes related to the Pulse integration.
  • PCODE and EMBED values are sent to the Pulse backend to enable joint reporting of VideoTech and AdTech data.
  • Added a Play Requested Analytics ping if play is attempted before video is ready.

  • Ooyala Skin SDK updates:
    • Discovery is shown on the end screen if configured in skin.json and the Up Next widget does not appear.
    • Removed debugging statements. Fixed getTitle() in ErrorScreen.js to capitalize the error message title.
    • Title should not always be in upper case.
Known Issues
  • XDR (cross-device resume) is not supported in this version.

4.23.0 Released 2017-02-23

New Features and Enhancements

  • PulseAdPlayer now reports AdCompleted before reporting PlayCompleted.
  • The order of the OoyalaException.OoyalaErrorCode enum values have been changed to match iOS order. This means that if you have been using integer error values to track an error provided by OoyalaPlayer, your numbers will no longer reference the correct error.
  • As part of the IQConfiguration, added support for Domain setting and other analytics parameters.
  • Sample app updates:
    • For the Pulse Sample App, a previously played asset will continue playing even if you select another asset from the list. Using the remote control for this action is not supported.
    • For the Pulse, OoyalaSkin, and ExoPlayer samples, postroll back seek on the end screen is not supported.
  • Ooyala Skin SDK updates:
    • Added support for AccentColor in skin.json, which changes the color of a number of UI elements in the UI simultaneously.
    • Updated skin-config to skin-config version 119aeb4. Your skin.json should be compatible with the updated skin SDK, but if not it is likely due to skin-config differences.
    • Modifed the Skin SDK to support multiple instances of the Skin UI at the same time. Replaced singleton functionality that restricted the creation of more than one SkinLayoutController.
    • Fixed error message handling to ensure the UI displays the correct error based on the failure.
    • Enabled error handling localization for some errors, based on what is in the skin-config language files.
    • Fixed memory leaks around the Android Skin UI.
    • See Ooyala Player Skin for the latest documentation.

Resolved Issues

  • There was an issue in which the Skip Ad Time counter would be reset after the Learn More button is clicked. This issue has been resolved.

4.22.0 Released 2017-01-25

New Features and Enhancements

  • The OoyalaPlayer now provides volume getter and setter methods. Note that these methods do not work for IMA or Freewheel ads, but do work for content and VAST and Ooyala ads.
  • The VisualOn SDK and SecurePlayer SDKs are no longer supported.
  • Sample app updates:
    • All sample apps now use ExoPlayer by default.
    • A MavenSampleApp has been added to demonstrate Maven dependencies.
    • Additional samples have been incorporated into the AdvancedPlaybackSampleApp, demonstrating how to retrieve video information using the CurrentItemChangedNotification.

Resolved Issues

  • There was an issue in Download To Own for Android 4.x, in which the expiry for downloaded assets was sometimes incorrect. This issue has been resolved.

4.21.0 Released 2016-12-15

New Features and Enhancements

  • The Ooyala Android SDK now provides users with the ability to download video assets so that they can be played offline. For more information, see Introduction to Offline Playback: Download to Own (DTO) and Rentals (DTR).
  • A Bitrate Changed Notification has been added to the SDK.
  • Sample app updates:
    • IQConfigurationPlayerActivity has been added to the OptionsSampleApp to demonstrate the usage of IQConfiguration.
    • A Notification Handling player has been added. The new player sample represents all notifications can be monitored by listeners and handles some key events.
    • Download to Own (DTO) and Rentals (DTR) functionality has been added and is available in the Download To Own Sample Apps. For further instructions on how to use this capability, please refer to Offline Playback: Download to Own (DTO) and Rentals (DTR) for Android.
    • There was an error in the sample code for the Android Pulse Plugin. This error has been fixed.
    • The maxLinearBreakDuration option has been add it to the parameter lists for the Android Pulse Plugin.
  • Ooyala Skin SDK updates:
    • There was an issue with the scrubber would jump during seek. This issue has been resolved.
    • Support for scrubberHandleColor and scrubberHandleBorderColor configurations has been added in skin.json.
    • Extended support has been added to the timeToShow configuration in skin.json, which allows support for percentages in timeToShow.
    • There was an issue in which the VAST Ad Overlay clickable area was larger than the image. This issue has been resolved.
    • In the Android Skin SDK project, the Skin module was renamed to >skin.
    • There was an issue in which the Discovery ScrollView cut off the last discovery option. This issue has been resolved.
    • There was an issue in which the Play/Pause button would show the incorrect icon in the Control Bar. This issue has been resolved.
    • The skin-config has been updated to skin-config@857608f. If your skin.json is incompatible with the latest SDKs, you must update your skin.json or validate against the skin-schema.
    • See Ooyala Player Skin for the latest documentation.

4.20.0 Released 2016-11-15

New Features and Enhancements

  • Integration with Ooyala Pulse: new class PulsePlayerOptions to set options on the ad player. Currently, the only option you can set is whether to display the ad title during ad playback or not.
  • PulsePlayerOptions is now available to customize the ad player. PulsePlayerOptions adds support for enabling or disabling the display of ad titles during Pulse ad playback.
  • An OoyalaIMAConfiguration has been added to customize IMA integration. OoyalaIMAConfiguration adds support for overriding the Locale setting for Google IMA.
  • Sample app updates:
    • Autoplay has been disabled for the OoyalaAPISampleApp and SecurePlayerSampleApp.
    • The DownloadToOwnSampleApp now compiles with the latest react-native and Ooyala Skin SDK versions.
  • Ooyala Skin SDK updates:
    • There was an issue with the end screen when there was no promo image. This issue has been resolved.

Resolved Issues

  • There was an issue in which a null pointer exception would occur in seekToPercent() if the player attempted to seek after an authorization failure. This issue has been resolved.

4.19.0 Released 2016-10-18

New Features and Enhancements

  • A notifyAdCompleted is now available to inform the player about Pulse ad completion.
  • A disableVASTOoyalaAds option has been added to disable the ad manager.
  • Device information and seek event implementations have been added for IQ Analytics.
  • An IQConfiguration class is now available. This class lets you set the Player ID for IQ Analytics. You can set your own IQConfiguration within the Options class
  • Seek Started and Seek Complete notifications have been added.
  • Sample app updates:
    • A video player plugin sample is now available in the AdvancedPlaybackSampleApp.
    • Event listening has been added for Fullscreen Events in OoyalaSkin, ExoPlayer, and PulseSampleApp.
    • All sample apps have been upgraded to use gradle 2.14.1 and Android Studio 2.2. You may need to update your Android Studio to support the latest sample apps.
    • Remove instances of React 0.26.2 and updated dependencies.
    • Opdates have been made to the OoyalaSkinSampleApp and ExoSampleApp to use updated React libraries.
  • Ooyala Skin SDK updates:
    • The OoyalaSkinLayoutController on Android is now observable and can listen to fullscreen events.
    • Support has been added for scrubber bar colors in skin-config skin.json, for both ads and content.
    • Replaced the deprecated ProgressBarAndroid with ActivityIndicator in React Native.
    • Added a Scaling factor to the Skin UI, resizing the closed captions based on player width.
    • A Desired State is now used for determining which icons to show in the UI over the playing state.
    • Default Player controls are now hidden initially. Support for autohide = false is now available in skin-config skin.json
    • Upgraded React-Native to version 0.33.0.

Resolved Issues

  • There was an issue in which adding the Pulse SDK to the Ooyala Android SDK resulted in failure to playback Live assets with DRM. This issue has been resolved.
  • There was a bug where the app would crash if the ad title was not specified in the VAST Ad. This bug has been fixed.

4.18.0 Released 2016-09-20

New Features and Enhancements

  • The theme attribute for the application tag has been removed from all SDK android manifests.
  • The destination for the SDK .zip folder has been updated in the gradle file.
  • Akamai HD2 HLS Delivery time is now available for Akamai HD2 Live.
  • The Mobile SDK for Android now supports NPAW Youbora version 5.3.
  • The DownloadToOwnSampleApp now prevents users from using outdated folders.
  • The Mobile SDK for Android now supports multiple analytics plugins.
  • Pause and resume events are now reported to IQ Analytics.
  • The Mobile SDK for Android now supports IMA Non Ad-Rules ads.
  • The NPAWSampleApp has been updated to work with the latest Ooyala SDK.
  • The Mobile SDK for Android now includes an Exoplayer sample app that supports OPT.
  • The Nielsen and Omniture sample apps now use the Ooyala Skin UI.
Resolved Issues
  • There was an issue in which an asset without a Pulse Ad would cause the player to crash if the Backlot account had Pulse enabled. This issue has been resolved.
  • There was an issue in which the ad player was not removed from the UI layout when content would change. This issue has been resolved.
  • There was an issue in which the UI would not properly update the number of displays and other metrics when replaying the same live asset. This issue has been resolved.
  • There was an issue in which the play button would no longer work after a postroll. This issue has been resolved.
  • There was an issue in which the currently selected closed caption language would not remain selected after closing the dialog. This issue has been resolved.
  • There was an issue in which programmatically switching between multiple videos would cause an error. This issue has been resolved.
  • There was an issue in which playing an unbundled video when using Analytics would cause a crash. This issue has been resolved.

4.17.1 Released 2016-08-24

Resolved Issues
  • There was an issue in which play starts and replay events were not properly reported. This issue has been resolved.

Known Issues

  • After a postroll advertisement, video cannot be replayed. To work around this, call setEmbedCode again after the PLAY_COMPLETED event occurs.

4.17.0 Released 2016-08-16

New Features and Enhancements

  • An alpha build for a Download To Own sample app (DownloadToOwnSampleApp) is now available. Documentation and full functionality are not yet implemented. For more information, please contact your Ooyala representative.
  • An alpha build for Bintray Support of SDKs is now available. Documentation and full functionality are not yet implemented. For more information, please contact your Ooyala representative.
  • The OoyalaPlayer class has been refactored to better support suspend/resume and switching between ads. This will not affect your development.
  • Autoplay behavior in the sample apps is changing to click to play.
  • The Pulse Sample App has been updated to the latest version of the Ooyala Skin SDK, which is required for the app.
  • A seek bar has been added to the end screen and can be viewed in the OoyalaSkinSampleApp. You can set the actionAtEnd variable to one of the values in the ActionAtEnd enum. See the API documentation for more information.

API Changes

  • The OoyalaPlayer.getDomain() method as been added. This method returns the PlayerDomain instance that was provided on initialization.
Resolved Issues
  • There was an issue in which the NPAW build.gradle die not copy JAR files correctly. This issue has been resolved.
  • There was an issue in which UI controls for MP4 and HLS playback on Fire TV in ExoPlayer did not function correctly. This issue has been resolved.
  • There was an issue in which the adStarted event for the AdvancedPlaybackSampleApp would not fire. This issue has been resolved.
  • There was an issue in which the an error notification would occur when opening the Skin Playback - VAST 3.0 Skippable Ad Long app. This issue has been resolved.
  • There was an issue in the OoyalaSkinSampleApp in which the overlay, as well as the Ooyala icon, would be clipped. This issue has been resolved.

4.16.0 Released 2016-07-19

New Features and Enhancements

  • With the IMA SDK, the [oo_embedcode] macros in IMA ad tag URLs are now replaced with the current embed code.
  • The Ooyala Mobile SDK for Android now enforces a matching between the pcode in the application to the pcode of the playing video. If your pcode does not match, the video will fail to play. If this occurs, ensure you are using the correct pcode in your application. To bypass this behavior, you can invoke the Options.Builder.setBypassPcodeMatching() method if you are certain you are using the correct pcode
  • SecurePlayer has been updated to version 3.8.2.3. If you are using SecurePlayer, you must update your SecurePlayer libraries to this version.
Resolved Issues
  • There was an issue with ExoPlayer in which the Playhead Time of Live Streams did not correctly display the value returned by the ExoPlayer currentTime() method. This issue has been resolved.

4.15.1 Released 2016-06-28

New Features and Enhancements

  • With the IMA SDK, the [oo_embedcode] macros in IMA ad tags are now replaced with the embed code.
Resolved Issues
  • There was an issue with ExoPlayer in which the Playhead Time of Live Streams did not correctly display the value returned by the ExoPlayer getCurrentPosition() method. This issue has been resolved.

4.15.0 Released 2016-06-22

New Features and Enhancements

  • Since Facebook no longer distributes the latest versions of the React Native AAR files with maven repositories, the React Native file is now distributed with OoyalaSkinSDK.jar. For more information, see New Player Skin for Android.
  • SecurePlayer has been updated to version 3.8.2.0. If you are using SecurePlayer, you must update your SecurePlayer libraries to this version.
Resolved Issues
  • If you experienced build failures with gradle2 due to duplicate files, add the duplicate filenames to the build.gradle exclude list. For example:
    packagingOptions 
    { 
      exclude 'jsr305_annotations/Jsr305_annotations.gwt.xml' 
    }                             
                            
  • There was an issue in which seeking to the end of playback with the ExoPlayerSampleApp when there was a midroll ad would occasionally cause the app to crash or freeze. This issue has been resolved.
  • There was an issue in which there were difficulties in getting the Ooyala Skin SDK scrubber bar to respond to touch when seeking. This issue has been resolved.
  • There were issues with the order of ad events. These issues have been resolved and the following event ordering now applies:
    1. An AdPodStarted event signifies the beginning of what may be one or more ads.
    2. At this point there could be multiple ad start and ad complete events.
    3. An AdPodEnded event signifies the end of ads and the resumption of content.

Known Issues

There is a bug in React Native that manifests as a memory leak in Android applications. We are investigating this issue, however, if you want to work around this issue you can do the following:
  1. In your application's Skin.json, set "startScreen" -> "showPromo": true".
  2. In your application's Playback activity, when you create an Options Object, call OptionsBuilder.setShowPromoImage(true).
This will use the legacy Ooyala Promo image feature, so you will still have a promo image while avoiding the memory leak.

4.14.1 Released 2016-06-01

Resolved Issues

This release fixes an issue with concurrent streams and authorization heartbeats.

4.14.0 Released 2016-05-20

New Features and Enhancements

  • The video player Android SDK is now integrated with the Ooyala Pulse SDK.
  • Authentication token expiration is now supported.
  • VAST 3.0 Ad Overlays are now supported.
  • Performance monitoring utilities are now available. For an example, see the Advanced Playback Sample App.
  • FreeWheel Ads are now supported in the Player Skin.
  • Nielsen SDK support has been upgraded to Nielsen-Android-AppSDK 4.0.0.8.
  • ExoPlayer support has been upgraded to version 1.5.7.

API Changes

  • The misspelling of Options.setExoConfigureration() has been fixed. The API is now spelled as Options.setExoConfiguration().
  • The OoyalaPlayer.AD_OVERLAY_NOTIFICATION_NAME notification has been added to the API. Listening to this notification will alert you when the ad overlay is shown onscreen.
  • The OoyalaPlayer.CC_CHANGED_NOTIFICATION_NAME notification has been added to the API. Listening to this notification will alert you when the closed-captioning text changes.
  • An OoyalaPlayer.onAdOverlayClicked() event handler has been added to the API.
  • The OoyalaPlayer.setRootItem() has been removed from the SDK. If you had a use case for this API, please contact us and we will help you find an alternative solution.
  • The OoyalaAPIClient.getPcode() and OoyalaAPIClient.getDomain() methods have been removed from the API. You can now call these from the OoyalaPlayer instead.
  • The following APIs have been moved to different package names:
    • com.ooyala.android.ExoPlayerFactory has moved to com.ooyala.android.player.exoplayer.ExoPlayerFactory.
    • com.ooyala.android.VisualOnPlayerFactory has moved to com.ooyala.android.visualon.VisualOnPlayerFactory.
  • The Stream class documentation has been enhanced in the API Reference.

Resolved Issues

  • There was an issue in which ExoPlayer always showed Live Closed Captions as available. This issue has been resolved.
  • There was an issue in which an exception would occur when dynamically inserting VAST ads during playback. This issue has been resolved.
  • There was an issue in which the SecurePlayerSampleApp would not work with manifests that used 307 redirects on some devices. This issue has been resolved.
  • There was an issue in which ExoPlayer would not work when directly provided with a media/variant manifest instead of a master manifest. This issue has been resolved.
  • There was an issue in which ExoPlayer did not correctly choose registered HLS assets. This issue has been resolved.
  • There was an issue in which Google IMA would crash after seeking to the end of the video. This issue has been resolved.

4.13.0 Released 2016-04-19

New Features and Enhancements

Warning:

As of April 1, 2016 the Ooyala Android SDKs have been shipping with Google ExoPlayer libraries instead of the VisualOn libraries. While there are steps that you will need to take, moving to ExoPlayer will provide a more consistent, higher quality HLS and MPEG-DASH playback experience for VOD and live streams on Android devices.

As of August 1, 2016, Ooyala will no longer support the HLS player integration with VisualOn or provide bug fixes or improvements specific to VisualOn libraries.

In order to upgrade, you will need to
  • Widevine DASH Simple VOD playback through ExoPlayer. If you are interested in learning more, please contact your CSM for more information.
  • VMAP for VAST 3.0.
  • Error reporting for VAST 3.0.
  • Support has been added for non-linear creatives in the VAST Ad data model.
  • Pre-personalization in SecurePlayer, which can be used outside of the VisualOn PlayReady workflow to eliminate the time delay from playback requests.
  • DesiredStates and DesiredStateNotification APIs have been added in order to capture the intended playback state of the player.
  • Widevine Classic is no longer supported, which means that .wvm, .wv_mp4, and .wv_hls files will no longer be supported. If this affects you, please contact your CSM for more information.
  • Google IMA v3.1.3 is now supported.
  • A VisualOnConfiguration API has been added to set an HTTP video proxy for VisualOn and SecurePlayer.
  • The following API changes have been made to improve load time performance:
    • In Utils.java, public static ExecutorService sharedExecutorService() has been added to schedule asynchronous API calls.
    • In OoyalaAPIClient, the contentTree(), contentTreeWithAdSet(), contentTreeByExternalIds(), and contentTreeNext() APIs have been removed.
    • In OoyalaPlayer, the reauthorizeCurrentItemWithCallback() API has been removed.
  • The PlayerInfo API has been enhanced. This class provides override information to Authorization to retrieve a set of playback streams. Previously you would set StreamPlayer.defaultPlayerInfo or call StreamPlayer.setPlayerInfo(). Now you call Options.Builder.setPlayerInfo() and pass a PlayerInfo object.
  • For SecurePlayer Integrations, you are now required to set the SessionID in your VisualOnConfiguration. Video will not be able to play back unless this parameter is set. If you are not sure what to set, please contact your CSM.

Resolved Issues

  • There was an issue in which clicking Advanced Playback > Custom Plugin Sample, starting playback, and tapping the Full Screen icon would result in a crash. This issue has been resolved.
  • There was an issue in which OoyalaPlayer would unnecessarily re-authorize playback for OPT-enabled assets and increasing load time. This issue has been resolved.
  • There was an issue in which IMA ads could not be paused. This issue has been resolved.
  • There was an issue in which an ad would not play after clicking the VAST Ad wrapper. This issue has been resolved.

4.12.0 Released 2016-03-03

New Features and Enhancements

  • The OoyalaPlayer now uses the new OoyalaNotification class in Observable events, which work differently than in the past. Previously, the OoyalaPlayer would emit String objects from the OoyalaPlayer's Observer Notifications:
    public void update(Observable arg0, Object argN){ ... }

    In such cases, argN was a String. This has changed, and argN is now an object of type OoyalaNotification. If you would like to maintain the same functionality you have had with strings up till now, you can now use OoyalaNotifcation.getNameOrUnknown(argN), which returns the string that was originally passed:

    public void update(Observable arg0, Object argN) {
        if (arg0 != player) {
          return;
        }
    
        final String arg1 = OoyalaNotification.getNameOrUnknown(argN);
        if (arg1 == OoyalaPlayer.TIME_CHANGED_NOTIFICATION_NAME) {
          ... your code here ...
        }
        ...
    }        
  • The Mobile SDK for Android now provides support for the following types of VAST 3.0 ads:
    • Ads with Icons
    • Skippable Ads
    • Podded Ads with Sequence

Resolved Issues

  • When you click Up Next, the UI will display Loading until the video begins to play.
  • There were issues in which the thumb scrubber for the volume and CC On/Off button did not display properly. These issues have been resolved.
  • There were issues in which the Learn More button and Up Next video did not respond to clicks. These issues have been resolved.
  • There was an issue in which the Share panel would pop up after click the back button or somewhere in the screen. This issue has been resolved.
  • When using the new Skin SDK, there was an issue in which tapping the volume button causes the scrubber bar and video to seek. This issue has been resolved.
  • There was an issue in which Up Next did not provide descriptions of upcoming videos. This issue has been resolved.

Known Issues

  • There is an issue in which loss of connectivity during the playback of an ad causes the player to crash.
  • NPAW Integration does not currently work with Ooyala SDKs 4.12.0. We are working to resolve this immediately.
  • In the new Skin SDK, Android Fullscreen does not work correctly.
  • In the new Skin SDK, Up Next does not display the title or description on small playback screens.

4.11.0 Released 2016-02-16

New Features and Enhancements

  • The OoyalaPlayer now emits Observable events differently than in the past. Previously, the OoyalaPlayer would emit String objects from the OoyalaPlayer's Observer Notifications. There are now additional notifications that emit the OoyalaNotification class. This will not likely affect your existing code, but if it does, you will need to modify the way you handle the update() method to determine the class of the notification.
  • A new OoyalaPlayer.getPCode() method has been added to the Mobile SDK.
  • Upon reaching the end of playback on a video, the Discovery tray will automatically load the next video.
  • A new OoyalaPlayer.ClickAd() has been added to the Mobile SDK. This method runs the Learn More feature, opening up the browser based on the advertisement being played.
  • The Skin Sample App now includes FreeWheel and IMA functionality.

Resolved Issues

  • There was an issue in which the Nexus 9 Android M would crash while running the player. This issues has been resolved.
  • When using the new Skin SDK, there was an issue in which clicking the Share button resulted in the Share Panel popup, which would continue to pop up even after clicking the back button or elsewhere on the screen. This issue has been resolved.

Known Issues

  • When using the IMA SDK, there is an issue in which an ad will not pause when the user taps the pause button.
  • When using the new Skin SDK, there is an issue in which tapping the volume button causes the scrubber bar and video to play from beginning. In addition, attempting to scrub forward and back causes the scrubber to jump around inconsistently.
  • There is an issue in which loss of connectivity during the playback of an ad causes the player to crash.
  • When using the new Skin SDK, there is an issue in the CC CC On/Off button may not appear.
  • There is an issue in which the Discovery Up Next message covers the Play/Pause button.
  • When using the new Skin SDK, on the Discovery menu, if you click many videos in rapid succession you may crash the application.

4.10.0 Released 2016-01-19

New Features and Enhancements

The following new features and enhancements are included in this release:
  • A new OoyalaFreewheelManager initializer API is available for customizing the layout for Ooyala apps that work in conjunction with FreeWheel, instead of using the AbstractOoyalaPlayerLayoutController. The FreewheelSampleApp now uses the OoyalaFreewheelManager initializer API for the Android skin.
  • Closed captions styling from the Android Accessibility settings are applied based on the Android OS version.

Resolved Issues

This release includes a fix for a bug where VisualOn would crash when invalid ID3 results were returned. This issue has been resolved, and warnings are now logged in such cases.

Known Issues

There is an issue in which closed captions may be pushed off the screen when switching from vertical to horizontal mode with Live Streams over VisualOn while using SecurePlayer libraries.

4.9.0 Released 23-December-2015

New Features and Enhancements

The following new features and enhancements are included in this release:
  • Added Discovery API support in OoyalaPlayer.
  • Added additional logging around errors.
  • Updated the Secureplayer Libraries to 03_05_02_0001.

Resolved Issues

This release includes a fix for a bug where setEmbedCodes() did not work correctly.

4.8.0 Released 07-December-2015

New Features and Enhancements

The following new features and enhancements are included in this release:
  • Options.preventVideoViewSharing has been added. It can be used to setSecure on the SurfaceView to block screen-sharing of video playback.

4.7.0 Released 16-November-2015

New Features and Enhancements

The following new features and enhancements are included in this release:
  • This release adds OoyalaPlayer.EMBED_CODE_SET_NOTIFICATION.
  • This release updates VisualOn libraries to 3.17.3-B84015.

Resolved Issues

This release includes the following fixes:
  • This release returns the playhead before suspend time as the current time if the player is suspended.

4.6.0 Released 21-October-2015

This release updates documentation provided with SecurePlayer.

Release 4.5.0 Released 30-September-2015

New Features and Enhancements
  • The Mobile SDK for Android, available on the Ooyala API Documentation Portal, now includes the Cast, Freewheel, and IMA SDKs.
  • The OoyalaPlayer.getMetadata() method has been removed. See Mobile SDK for Android for more information.
  • The Google IMA library has been updated with ima-android-v3-3.b13.3.jar.
  • The SecurePlayer libraries have been updated with version 03_04_05_0001.
  • Support has been added for encrypted HLS over VisualOn while using SecurePlayer libraries.

Resolved Issues

This release includes the following fixes:
  • There was an issue in which a user would watch a video and click the home button. When resuming video playback, an intermittent error would occur in which the user would have to re-start the video. This issue has been resolved.

Release 4.4.0 Released 21-August-2015

Resolved Issues

The following issues are resolved in this release:

  • A null pointer exception around video authorization issue has been fixed.
  • An issue occurs if changeCurrentItem is used with a null parameter. A crash may result. To avoid this issue, use setEmbedCode instead of changeCurrentItem.
  • An issue would occur where when the close caption (CC) option was selected and the device was subsequently rotated, the CC icon would be deselected. This has been fixed and the CC icon will remain selected after the device is rotated.
  • An issue would occur where when the closed caption (CC) option was selected and MediaListView was subsequently selected, the app would crash. This behavior has been fixed and the app no longer crashes.
  • An issue would occur when playing a video in both Play and Cast and Cast and Play scenarios with Chromecast. The Closed Captions button displaying options of None and Use Closed Captions did not appear. This issue has been fixed and the Closed Captions button now appears.

Release 4.3.0 Released 18-June-2015

New Features and Enhancements

This release includes the following updates:

  • A new API called EmbeddedSecureURLGenerator was added to the SDK to help with testing and debugging the Ooyala Player Token with the Ooyala Player.
  • A takedown service has been added to stop playback of unauthorized videos.

Resolved Issues

The following issues are resolved in this release:

  • An issue where the app did not properly time out for an IMA ads request.
  • An issue where the app crashed after tapping the back button when switching between PlayerView and MediaListView.
  • Each Mobile SDK App must now include the android.permission.ACCESS_WIFI_STATE permission in the manifest file. For more information seeSetting Permissions for Android Apps.

Known Issues

  • FreeWheel automatically skips ads when user has paused the ad for longer than 5-7s. Video content automatically resumes. This is as designed and will not be fixed.

Release 4.2.0 Released 27-May-2015

New Features and Enhancements

This release includes the following updates:

Release 4.0.1 Released April, 2015

Updates and Enhancements

The following updates and enhancements are included in this release:

  • Ooyala provides support for PlayReady HLS to meet the content protection requirements for high-quality content on Android and iOS devices. This support includes the following comprehensive content protection features that work together to secure content:

    • Content Authorization through the PlayReady integration
    • User Authentication using the Ooyala Secure Player Token
      Note: For information about setting up and using this feature see Ooyala Player Token.
    • Authorization APIs to manage authorization requests
      Note: For more information about the Authorization API see Player Authorization API for Player V3.
  • The VisualOn APIs now include a builder class with the following functions:

  • The VisualOn API now includes Add Buffering Start/End and Acquire Rights Start/End notifications.

Release 4.0.0 Released 2-April-2015

Updates and Enhancements

The following updates and enhancements are included in this release:

  • The Ooyala Mobile SDK for Android Sample Apps GitHub repository is now live. Use this portal to get the most up to date sample apps. For more information see Sample Applications for the Android Mobile SDK.
  • A new Device Management sample app is available on the Ooyala Mobile SDK for Android Sample Apps GitHub repository.
  • Based on Google recommended practices, Ooyala has made the switch to Android Studio. All customer applications are still compatible with our libraries, however our sample apps rebuilt in Android Studio. This includes the Core SDK and the Freewheel, IMA, and other integrations. For more information see Sample Applications for the iOS Mobile SDK.
  • The OOOoyalaPlayerViewController API is changed. As of this release you must instantiate the OooyalaPlayer and use this player to create the OoyalaPlayerLayoutController. This is shown in the following example code:
    OoyalaPlayer player = new OoyalaPlayer(pcode, domain, options)OoyalaPlayerLayoutController controller = new
    OoyalaPlayerLayoutController(playerLayout, player) 
  • The Custom Controls folder content is updated to removed legacy and unneeded files. For more information see Implementing Custom Controls for Android.
  • The ClosedCaptionsStyle and ClosedCaptionsView classes are moved from the com.ooyala.android package to the com.ooyala.android.captions package.
  • The DebugMode, OrderedMap, OrderedMapValue, and other utility classes are moved from the com.ooyala.android package to the com.ooyala.android.utils package.
  • Support for in app rendering of clickthrough ads is now available.
  • Visibility of the following files is changed from public to package-private:
    • VASTAd
    • VASTAdPlayer
    • VASTAdSpot
    • VASTLinearAd
    • VastSequenceItem
    • VASTStream
    • VASTUtils
    • VASTWrapperAd

Resolved Issues

The following issues are resolved in this release:

  • An issue where the app would throw an error if resume( ) was called before setEmbedCode is now resolved.
  • The SDK now logs error events to the console.
  • An issue where VisualOn videos would show a blank screen, and a long delay for video to start was perceived when the play event was initiated, is now resolved.

Release 3.5.0 Release Date March, 2015

Updates and Enhancements

The following updates and enhancements are included in this release:

  • Functionality is added to set bitrate thresholds and buffer size when using VisualOn. For more information see the API documentation for VisualOnConfiguration.
  • The SDK in now compatible with FreeWheel 5.19 integrations.
  • The EmptyStreamPlayer class is deprecated.
  • Network timeouts are now implemented for all Ooyala network requests. This option is configured using the following Options.Builder class methods:
  • The CurrentItemChangedCallback interface and the OoyalaPlayer.setCurrentItemChangedCallback(CurrentItemChangedCallback callback) method are deprecated. To get similar behavior listen to the CurrentItemChanged notification from the OoyalaPlayer.
  • The following classes are now private:
    • AcquireRightsAsyncTask
    • AcquireRightsCallback
    • FileDownloadAsyncTask
    • FileDownloadCallback
    • PersonalizationAsyncTask
    • PersonalizationCallback
    • VisualOnUtils
    • WidevineStuckMonitor
  • IMA Ad requests now implement a timeout.

Resolved Issues

The following issues are resolved in this release:

  • VisualOn Stream Player would restart video when going into fullscreen while paused.
  • The Learn More button did not appear when using FreeWheel VAST wrapper.
  • The VisualOn Stream Player crashed when an invalid URL was asserted.
  • Non ad rule IMA ads and content played at the same time when preLoadContent was set to false.

Release 3.4.0 Release Date February, 2015

Updates and Enhancements

  • API reference documentation is now available online: Android Mobile SDK API Reference.
  • The following classes are moved from the com.ooyala.android package to the com.ooyala.android.apis package:

    • AuthorizeCallback
    • ContentTreeCallback
    • ContentTreeNextCallback
    • FetchPlaybackInfoCallback
    • MetadataFetchedCallback

    The ModuleDataclass is moved from the com.ooyala.android package to the com.ooyala.android.items

    package.
  • Live Scrubbing is now available for VisualOn Integrations. This new feature allows the user to seek backwards during playback of a live stream when using a digital video recorder (DVR).
  • Live Scrubber is now configurable in the app. The scrubber can be turned on and off in within the com.ooyala.android.configuration.Options configuration. The default setting is to show the live scrubber. For more information see Configuring VisualOn Live Scrubbing
  • Cuepoints now appear on Google IMA ads by default. For information about configuring cuepoints, see Cuepoint Markers.

Resolved Issues

This release resolves an issue with Samsung devices where the user double clicked the closed caption button and the a pop up screen appeared until the app was closed.

Known Issues

Google IMA Ad playback cuepoints do not appear in the player unless initialized for all pre-roll, mid-roll, and post-roll ads.

Release 3.3.0 Release Date January, 2015

Updates and Enhancements

  • The SDK is updated to supported FreeWheel version 5.18.0.

  • The SDK is updated to supported Google IMA version Beta9.

  • The SDK is enhanced to improve load time for pre-roll ads. Options are now available for preload and promoimage.

Resolved Issues

The following issues are resolved in this release:

  • Closed captions were sometimes obfuscated by the scrubber bar.

  • Closed captions were not displaying at intervals in the video playback.

  • Videos sometimes play before a play event is activated.

  • Closed captions were not appearing on Android devices.

Known Issues

Please review the following known issues:

For Google IMA ads, if the same ad is served on multiple ad slots, and the user skips the ad on the first ad slot, the second ad resumes from the skipped position.

Updates and Enhancements

  • The SDK now includes new SecurePlayer libraries for Playready playback on Android L devices.
  • The SDK API documentation in now found in the SDK APIDocs directory.

Release 3.2.0 Release Date 11/14

Updates and Enhancements

This release includes the following updates and enhancements:

  • The SDK is now configurable for custom VisualOn library versions. For more information see Overriding the Default VisualOn Library For Android Apps.

  • The SDK now includes support for X86 libraries to improve performance with Intel based Android devices and the VisualOn integration libraries.

  • Player controls are now configurable for all ads, including Google IMA ads. For more information contact your CSM.

  • Freewheel ads cue points are now configurable for more information see Cuepoint Markers.

Resolved Issues

The following issues are resolved in this release:

  • The playAd method was missing from the SDK is now resolved.

  • The player continued to play an asset after the pause button was activated and shown as active in the player.

  • Google IMA SDK ads did not play in the proper sequence after a seek event.

  • IMA SDK ad asset list sometimes appeared on the screen when the scrubber bar is hidden.

  • Video playback reset if no pre-roll ads were configured for the asset.

  • The PlayAd method was not working properly as of SDK release 3.0.0.

  • The setEmbedCode from a TIME_CHANGED_NOTIFICATION created an app crash issue in SDK release 3.1.0.

Known Issues

Please review the following known issues:

  • Google IMA SDK ad assets sometimes to not play properly when the skippable ad option is invoked.

  • The sequence of Freewheel ad assets changes on Android Nexus 5.

  • VisualOn integration videos restart when switching between fullscreen and normal view.

  • When a pre-roll ad is played the AdStartedevent occurs before the PlayStartedevent.

  • VisualOn integration videos sometimes do not resume after a seek even in fullscreen mode.

  • Users are unable to seek after switching to fullscreen mode for VisualOn integration videos.

  • Freewheel ads continue to play after a pause event is triggered.

Notable Changes in Version 3.1.0 Release Date 10/14

New Features and Enhancements

This release includes the following updates:

  • Spanish language prompts are now supported for FreeWheel pre-roll and mid-roll ad prompts.
  • Japanese language prompts are now supported for FreeWheel pre-roll and mid-roll ad prompts.
  • The latest VisualOn release is now supported. This release supports Android 5.0, AKA Lollipop and includes new licensing. Make sure you follow the integration steps carefully to integrate the new license into your application.
  • FreeWheel SDK version 5.16 is now supported.
  • The Google IMA SDK sample application is updated.

Full Release Notes for Version 3.1.0

New Features and Enhancements

This release includes the following updates:

  • Spanish language prompts are now supported for FreeWheel pre-roll and mid-roll ad prompts.
  • Japanese language prompts are now supported for FreeWheel pre-roll and mid-roll ad prompts.
  • The latest VisualOn release is now supported. This release supports Android 5.0, AKA Lollipop and includes new licensing. Make sure you follow the integration steps carefully to integrate the new license into your application.
  • FreeWheel SDK version 5.16 is now supported.
  • The Google IMA SDK sample application is updated.

Resolved Issues

This release includes the following resolved issues:

  • The native MediaPlayer sometimes throws the following error:

    "Media server died!", which is error(100, 0)
  • Google IMA SDK is logging too frequently.
  • When the player goes to fullscreen mode a new fullscreen controller is created.
  • Plays from an Android device are logged as "invalid host" in Backlot analytics.
  • The FreeWheel ad player lock and unlock features is not work properly.

Notable Changes in Version 3.0.0 Release Date 9/14

Updates and Enhancements

Version 3.0.0 of the Ooyala Mobile SDK for Android includes the following notable changes:

Cue Point Markers

Cue points are visual markers that enable an end user to predict ad or segment breaks. This feature is enabled by default and compatible with Android 2.3 and newer devices. This feature is active by default upon upgrading to Ooyala SDK v3.0, however the Ooyala FreeWheel Integration libraries must also be updated. Get the latest Ooyala SDK for FreeWheel Android here: Ooyala Downloads.

FCC TV Ratings Per the FCC guidelines for TV ratings, you can now apply the TV rating watermark to your videos. TV ratings are applied at the asset level, and each asset can only have one TV rating. The TV rating watermark appears when the video starts playing and appears again when the video resumes after ad playback. This feature is compatible with Android 2.3 and newer devices.
Note: The TV Rating watermark does not appear during ad playback.

For more information about this feature see About using Android FCC Ratings.

Seek Over Ad Pods (SOAP) For FreeWheel
The new Seek Over Ad Pods (SOAP) feature provides new functionality to play ads in queued sequence even when the user seeks past an ad in the player. When the user skips over an ad, the ad is played at the next ad spot. This feature is active by default upon upgrading to Ooyala SDK v3.0, however the Ooyala FreeWheel Integration libraries must also be updated. Get the latest Ooyala SDK for FreeWheel Android here: Ooyala Downloads.
Note: The sample apps included in the FreeWheel SDK show examples of the new SOAP functionality.

Notable Changes in Version 2.7.0 Release Date 8/14

Version 2.7.0 of the Ooyala Mobile SDK for Android has been released. Notable changes in version 2.7.0 include improved buffering state change consistency and bug fixes.

Full Release Notes for Version 2.7.0

API/UI Changes
  • Removed the ability to use Paint-On or Roll-Up presentation styles for closed captions.
  • Fixed buffering state changes to be more consistent while playing content.
  • Added enableCustomSmoothPlayer setting for VisualOn SecurePlayer enablement.
Bug Fixes
  • Fixed ANRs with using VisualOn while debugging or setting embed code.
  • Fixed scenario where FreeWheel Post-rolls would not play when indicated.

Notable Changes in Version 2.6.0

Version 2.6.0 of the Ooyala Mobile SDK for Android has been released. Version 2.6.0 includes the removal of the Google IMA libraries from our distribution (they now must be downloaded from Google directly), as well as other enhancements and bug fixes. We have also released a VisualOn Integration, available to all Ooyala customers. Please download the integration from Ooyala Downloads.

Full Release Notes for Version 2.6.0

API Changes
  • Ooyala no longer provides Google IMA libraries alongside our integration. Please download these libraries from Google IMA directly.
  • Added support of the hh:mm:ss:ff timestamp format for Closed Captions.
Bug Fixes
  • Fixed bug where the current item duration was not available on Current Item Changed Notification.
Documentation Changes
  • Updated the integration instructions for the Google IMA on Android Mobile SDK.
  • Integration with Google IMA on Android—Updated “What You Need” section of the documentation about integration with Google IMA on iOS. You now need to download the Google IMA Libraries from the Google Developer website.
  • A Closer Look at the Android Sample App and Integrations —Added the Google IMA Libraries (ima-android-sdk-*.jar) to the "Setup the libraries for your project" section.

Version 2.5.0

Notable Changes in Version 2.5.0

Version 2.5.0 of the Ooyala Mobile SDK for Android has been released. Version 2.5.0 includes changes to namespaces of most Ooyala SDK classes. You may have to update your application's imports.

Full Release Notes for Version 2.5.0

API/Class Package Changes
  • Moved Data Model classes into their own package. Classes were isolated to create easily consumable packages and to reduce confusion. This may require changes to some of your imports.
  • Moved Player classes to their own package. Classes were isolated to create easily consumable packages and to reduce confusion. This may require changes to some of your imports.
  • Moved VAST classes into their own package. Classes were isolated to create easily consumable packages and to reduce confusion. This may require changes to some of your imports.
  • Added beginFetchingAdvertisingId for replacement of LR_DEVICEID in VAST ads to allow for ad playback via LiveRail in mobile apps. Requires Google Play Services Library.
  • Added setCustomDrmData for third party authentication tokens.
  • Added DebugMode class for consistent logging and runtime assertions.
  • Added closed captions to full screen controller.
  • Moved UI classes to new package, updated all sample apps as such. Classes were isolated to create easily consumable packages and to reduce confusion.
  • Added support for Playready DRM.
Bug Fixes
  • Fixed showing closed captions during advertisements.
  • Fixed Null Pointer when resuming a unauthorized video.
  • Fixed app crash when ad is unauthorized.
  • Fixed analytics logic by only reporting play request and play started once after each currentItemChange.
  • Updated API documentation with relevant classes.

Version 2.4.0

Notable Changes in Version 2.4.0

Note: These changes may require you to update your integration.

Version 2.4.0 of the Ooyala Mobile SDK for Android has been released. Version 2.4.0 includes:

  • Major Changes to Closed Captions UI and Closed Captions API.
  • New PlayerDomain class (new PlayerDomain(DOMAIN)) that must be used for all instances of OoyalaPlayerLayoutController and OptimizedOoyalaPlayerLayoutController.
  • The domain you provide to the PlayerDomain class now must begin with http:// to match domain analytics ingestion.

Full Release Notes for Version 2.4.0

FreeWheel/IMA Bug fixes
  • Updated FreeWheel Binaries to 5.13.0.
  • Fixed issue of running update before we had data.
  • Addressed race conditions with FW ads.
  • Pass current item duration into FreeWheel instead of Stream Player duration.
  • Sync SDK helper with iOS, remove FreeWheel jar from OO+FW SDK.
API Changes
  • Major Closed Captions UI overhaul to adhere to FCC Regulations.
  • Extracted 'player domain' as a concrete type and put validation enforcement in there, and updated APIs using such.
  • Introduced onKeyUp event handler to show how Fire TV remote control (and other controls) can interact with OoyalaPlayer.
Other Changes
  • Fixed use of _closedCaptionsView and _closedCaptionsStyle to avoid NPEs.
  • Use AsyncTask and Thread to respect thread requirements.
  • Fixed bugs with OptimizedOoyalaPlayerLayoutController.

Version 2.1.0

Notable Changes in Version 2.1.0

Version 2.1.0 of the Ooyala Mobile SDK for Android and iOS has been released. Version 2.1.0 includes:
  • Support for Ooyala's Cross-device Resume (XDR): the ability for a viewer to stop viewing on one device and resume on a different one.
  • Support for Apple iOS7 user interface improvements.
  • Many customer-reported and unreported optimizations and issues.
Note: In the SDK for Android, with version 2.1.0, the BaseMoviePlayer class been renamed BaseStreamPlayer.

Was this article helpful?