4.31.1 Released 2018-01-17

This release fixes previous issues. No new features
are introduced in this release.

Resolved Issues

Fixed issues for the High Availability on Live channels. Switching channels did not succeed successfully under certain conditions. The player is consistent now when failing over to a secondary subchannel.

Fixed an issue that was causing the Play/Pause to be disabled on Amazon Fire TV.

Fixed the logic to select a bitrate to download when using the DTO feature. When setting a bitrate to download, the selected bitrate is going to be the closest bitrate to the value input by the user (if not exact).

Fixed an issue that would cause audio from the content video to play with the ad simultaneously under certain conditions.

Fixed an issue in which video would always go to landscape mode when clicking on full-screen.

Fixed an issue in which the Learn More button would not pause the video with Freewheel Ads.

Known Issues

When downloading videos using the Download API, files that are larger than 1 Gigabyte on
install may fail, even if sufficient storage space is available on the device.

Support to handle null fields gracefully in Ads JSON array for IMA SDK.

ID3 Tag Support: For video streams that include ID3 tags, this SDK version
exposes all of the ID3 tag information using a Metadata object from the ExoPlayer library
(see the Exoplayer documentation). To listen for ID3 tag
information, add a listener to the ID3TagNotifier singleton of the OoyalaSDK (see the
reference doc).

Resolved Issues

Fixed an issue with high-availability for DASH-CENC streams where failover would sometimes show a black screen.

Known Issues

DTO/Offline Playback: In this release, the bitrate to be downloaded can be specified. However, the full manifest is stored locally, and playback will attempt to play any stream referenced in the original manifest, even if not downloaded.

For VR 360 videos, many Android devices with Android 6.0 and below cannot support streams encoded with Main or High profiles (only Baseline). For devices unable to support at least Main profile may be unsuitable for good quality VR 360 video rendering.

4.30.2 Released
2017-12-14

4.30.1 Released 2017-12-8

New Features

This release exposes the ability to change the security level for Widevine. Use
the widevineSecurityL3Enabled flag in the Ooyala Options class
(a Boolean indicating whether Widevine Security is using L3) in the Ooyala
Android SDK. This flag allows developers to force the Widevine Security to Level
3. This was added to support customers who encountered problems playing content
using Widevine DRM with Security Level 1 in cases where the hardware is actually
not capable of Level 1 decryption.

CAUTION: This flag should only be
used with deep knowledge of the implications. It effectively allows addressing
problems that arise from device OS and/or Widevine updates that are not in sync
with the device’s hardware.

4.29.0 Released 2017-11-16

This release upgrades to ExoPlayer v2.5.3. Be sure to add this version in your app as well. Support of new features unique to ExoPlayer 2.x are not exposed in this release, and will be forthcoming.

Moved Heartbeat logic to secure concurrent streams to the server side, removing dependence on the local device clock setting being correct.

Resolved Issues

The second or third ad from a podded ad was playing for 2-3 seconds instead of 5 seconds. In the Android SDK, we updated to Google IMA v3.7.4, which fixed an issue in which ads in an ad pod did not play for their total duration.

Known Issues

This release has issues with event mapping for the Amazon Fire TV remote.

The RESUMED Event is getting triggered without resuming the ad.

Chromecast known issues to be remedied in the next SDK release:

Continuous loading spinner appears on a replay.

When disconnecting Chromecast, the sender device may resume the video
from the start.

This release does not support Android Split-screen functionality.

Playback is going on even when the play button is displaying when split
screen mode is on.

When playback is going on one screen, the other screen shows black
screen.

In split screen mode, the fullscreen button is not clickable for the
player at the bottom screen.

Support for Closed Captions for Live streams is not supported in this
release.

For the Download to Own (DTO) feature (for offline playback), selection of the specific stream (by bitrate) is not supported in this release.

4.28.2 Released 2017-10-04

You can now add Azure dynamic filters in the SAS authorization request through Options

The PulseIntegration plugin was integrated with PulseSDK v2.5.17.20.0.

Resolved Issues

Fixed an issue in which, when an HLS video had multiple audio tracks in the master playlist, the player (if using ExoPlayer), would not play any audio. In this version, the player will use the default audio in the HLS master playlist when multiple audio tracks are in the manifest.

Fixed an issue in which the play button would appear while an ad was playing
when the Accessibility screen reader was enabled.

4.28.0 Released 2017-09-14

Added delegates in the IMAOoyalaSDK that will let users know about the state and events coming from IMA when an ad is playing.

Improved support for Talk Back (Accessibility screen reader) to navigate through the player controls.

Added a sample that shows how to use the scrubber bar when the player is inside
a RecyclerView. Here is the URL to the sample: https://github.com/ooyala/android-sample-apps/blob/stable/PlaybackLab/FullscreenSampleApp/app/src/main/java/com/ooyala/fullscreensampleapp/CustomRecyclerView.java

Resolved Issues

Hid the play/pause button when Talk Back is enabled. Viewers can toggle playback by double tapping on the video view.

Known Issues

Talk Back might occasionally spell random letters when selecting the More Options button.

Due to current limitations in the Android platform, the player scrubber bar cannot be moved when Talk Back is enabled, nor can the Volume bar seek while using Talk Back. We are working on adding a new UX when Talk Back is enabled in Android.

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.

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.

4.23.0 Released 2017-02-28

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.

4.20.0 Released 2016-11-15

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 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:

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.

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:

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 CCCC 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.

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.

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:

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:

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

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.

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.

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.

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

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.