Mobile SDK for Android Release Notes

4.50.0 Released 2020-01-13

This Ooyala Player release fixes previous issues.

Compatibilities with this Release

* Use of AndroidX is required for your apps to use this version of the Ooyala Android SDK. Please see the following page for more information about migrating your application if using Support Libraries: https://developer.android.com/jetpack/androidx/migrate.

New in this Release

  • This release introduces no new features

Fixed in this Release

  • All the analytics calls are reported under http://www.ooyala.com tag.

Known Issues in this Release

New: there are no new known issues.

Unresolved issues from previous releases

  • Sample application with RecyclerView crashes randomly. Frequent updates from RecyclerView increases such concurrent modifications.
  • Fatal crash on Samsung Galaxy S7 with Android 7.0. There is a dependency from React Native developers. This is a known issue in RN - https://github.com/facebook/react-native/issues/24261
  • There is an issue where offline playback would fail with an error when the downloaded asset used both HEVC and NON-HEVC codecs, using DashDownloader.
  • There is a known accessibility issue with Seekbar Talkback where the Talkback announcement does start immediately when the Seekbar is selected. Instead, the Talkback announcement is delayed by ~4 seconds.
  • Syndication Error messages are not correct
  • Video cannot be started by double tap on the screen. Nothing happens when user double taps on the screen, video can be started only using the play button.
  • Only Audio gets played for Azure video 360 assets
  • 4:3 Aspect Ratio is not displayed correctly and video gets cropped.
  • Clicking on the “Up-Next” video does not play for Pre-Mid-Post roll assets.

4.49.0 Released 2019-11-06

This Ooyala Player release fixes previous issues.

Compatibilities with this Release

* Use of AndroidX is required for your apps to use this version of the Ooyala Android SDK. Please see the following page for more information about migrating your application if using Support Libraries: https://developer.android.com/jetpack/androidx/migrate.

New in this Release

  • This release introduces no new features

Fixed in this Release

  • Getting low quality rendition while using the "BasicPlaybackSampleApp" and always the highest rendition in "OoyalaSkinSampleApp.

Known Issues in this Release

New: there are no new known issues.

Unresolved issues from previous releases

  • Sample application with RecyclerView crashes randomly. Frequent updates from RecyclerView increases such concurrent modifications.
  • Fatal crash on Samsung Galaxy S7 with Android 7.0. There is a dependency from React Native developers. This is a known issue in RN - https://github.com/facebook/react-native/issues/24261
  • There is an issue where offline playback would fail with an error when the downloaded asset used both HEVC and NON-HEVC codecs, using DashDownloader.
  • There is a known accessibility issue with Seekbar Talkback where the Talkback announcement does start immediately when the Seekbar is selected. Instead, the Talkback announcement is delayed by ~4 seconds.
  • Syndication Error messages are not correct
  • Video cannot be started by double tap on the screen. Nothing happens when user double taps on the screen, video can be started only using the play button.
  • Only Audio gets played for Azure video 360 assets
  • 4:3 Aspect Ratio is not displayed correctly and video gets cropped.
  • Clicking on the “Up-Next” video does not play for Pre-Mid-Post roll assets.

4.48.0 Released 2019-09-30

This release includes one new feature.

Compatibilities with this Release

* Use of AndroidX is required for your apps to use this version of the Ooyala Android SDK. Please see the following page for more information about migrating your application if using Support Libraries: https://developer.android.com/jetpack/androidx/migrate.

New in this Release

  • WebVTT CC support added to Android SDK

Fixed in this Release

  • No fixes included into the release.

Known Issues in this Release

New: there are no new known issues.

Unresolved issues from previous releases

  • Sample application with RecyclerView crashes randomly. Frequent updates from RecyclerView increases such concurrent modifications.
  • Fatal crash on Samsung Galaxy S7 with Android 7.0. There is a dependency from React Native developers. This is a known issue in RN - https://github.com/facebook/react-native/issues/24261
  • There is an issue where offline playback would fail with an error when the downloaded asset used both HEVC and NON-HEVC codecs, using DashDownloader.
  • There is a known accessibility issue with Seekbar Talkback where the Talkback announcement does start immediately when the Seekbar is selected. Instead, the Talkback announcement is delayed by ~4 seconds.
  • Syndication Error messages are not correct
  • Video cannot be started by double tap on the screen. Nothing happens when user double taps on the screen, video can be started only using the play button.
  • Only Audio gets played for Azure video 360 assets
  • 4:3 Aspect Ratio is not displayed correctly and video gets cropped.
  • Clicking on the “Up-Next” video does not play for Pre-Mid-Post roll assets.

4.47.0 Released 2019-09-11

This release fixes previous issues.

Compatibilities with this Release

* Use of AndroidX is required for your apps to use this version of the Ooyala Android SDK. Please see the following page for more information about migrating your application if using Support Libraries: https://developer.android.com/jetpack/androidx/migrate.

New in this Release

There are no new features in this release.

Fixed in this Release

  • [RecyclerView] IQAnalyticsPlugin concurrent modification issue.
  • Scrubber Bar NOT disappear/appear when tapped on video while playing
  • No response when clicked on the “Previous” and “Next” 10 seconds icon.
  • Asset is playing from starting instead of playing from initial time.
  • Publicidad Player Ooyala Android
  • Ad is skipped in 2 seconds when resumed
  • Postroll podded add gets skipped
  • IMA midroll does not play when skipped till end of content
  • Before hitting Play button
  • RESUMED Event is getting triggered without resuming the ad.
  • Player is stuck and unresponsive on Seeking Past midroll
  • Ad plays in Background when user clicks home button just before the ad playback
  • An Ad shows video controls
  • Minimize / Maximize screen is not working at end screen.
  • Video starts to play from the initial position if user seek back on end screen after postroll.
  • Preroll/Midroll/Postroll is playing without click on play button if user seek the video to the end.
  • Black screen is displayed instead of main video content
  • Tapping on Next video button produces UI flickering
  • Second podded ad is taking more time to start after first podded ad
  • Only Audio gets played for Azure video 360 assets

Known Issues in this Release

New: there are no new known issues.

Unresolved issues from previous releases

  • Sample application with RecyclerView crashes randomly. Frequent updates from RecyclerView increases such concurrent modifications.
  • Fatal crash on Samsung Galaxy S7 with Android 7.0. There is a dependency from React Native developers. This is a known issue in RN - https://github.com/facebook/react-native/issues/24261
  • There is an issue where offline playback would fail with an error when the downloaded asset used both HEVC and NON-HEVC codecs, using DashDownloader.
  • There is a known accessibility issue with Seekbar Talkback where the Talkback announcement does start immediately when the Seekbar is selected. Instead, the Talkback announcement is delayed by ~4 seconds.
  • Syndication Error messages are not correct
  • Video cannot be started by double tap on the screen. Nothing happens when user double taps on the screen, video can be started only using the play button.
  • Only Audio gets played for Azure video 360 assets
  • 4:3 Aspect Ratio is not displayed correctly and video gets cropped.
  • Clicking on the “Up-Next” video does not play for Pre-Mid-Post roll assets.

4.46.0 Released 2019-06-27

This release introduces new features and fixes previous issues.

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

* Use of AndroidX is required for your apps to use this version of the Ooyala Android SDK. Please see the following page for more information about migrating your application if using Support Libraries: https://developer.android.com/jetpack/androidx/migrate.

New in this Release

  • Enable OpenMeasurement in IMA SDKs

    The OpenMeasurement SDK in IMA provides advanced viewability metrics for buyers and publishers from many verification vendors in a single integration. For publishers using the IMA SDK already, this integration comes at no extra implementation cost. The setup for verification script trafficking in VAST depends on the campaign type.

  • Add error logging to IQ dataset

    Play Failures are registered upon the player initialization, before being able to join the stream. All error types (API and Client) are posted into IQ as custom data.

    Play failure:

    • event = "apiError"
    • eventMetadata = {qosEventName, playerCoreVersion, errorCode, errorMessage, url}
  • Update to latest (or later) version of IMA SDK

    RecyclerView Sample App

    The existing version of IMA in the Android SDK would be deprecated in May 2019. Hence the IMA SDK has been upgraded to version 3.11.2.

Fixed in this Release

  • Fixed an issue when sometimes only Audio was played without Player UI (Random
  • Fixed an issue where 'Learn More' link was not responding to 'click' event.
  • Fixed an issue when Play button was displayed instead of "Replay"
  • Minor stability fix added to ChromeCastSDK
  • Fixed an issue when after selection of the 2nd text marker it overlayed over the 1st marker
  • Fixed an issue with DRM error in Android SDK v4.44.0_RC8
  • Fixed issue of Next video button is not displayed in PlayerView screen.Note that previous button always takes to the beginning of video.
  • Fixed an issue when changing from one video to another video while casting the PlayerView screen kept spinning and did not show any controls.
  • Fixed an issue when in cast mode, a textview with basic description of the asset was not displayed in the PlayerView screen on sender device.
  • Fixed an issue when default view was displayed on a PlayerView screen when navigated back from MediaListView screen
  • Fixed an issue when clicking on the Mini-controller in the MediaListView screen of 1st device displayed a grey PlayerView screen.
  • Fixed an issue when marker was partly cut on selection when the marker position is close to the beginning/end of asset duration.
  • Fixed an issue when offset in DVR window is fluctuating.

Known Issues in this Release

New

  • Sample application with RecyclerView crashes randomly. Frequent updates from RecyclerView increases such concurrent modifications.

Unresolved issues from previous releases

  • Fatal crash on Samsung Galaxy S7 with Android 7.0. There is a dependency from React Native developers. This is a known issue in RN - https://github.com/facebook/react-native/issues/24261
  • There is an issue where offline playback would fail with an error when the downloaded asset used both HEVC and NON-HEVC codecs, using DashDownloader.
  • There is a known accessibility issue with Seekbar Talkback where the Talkback announcement does start immediately when the Seekbar is selected. Instead, the Talkback announcement is delayed by ~4 seconds.
  • Syndication Error messages are not correct
  • Video cannot be started by double tap on the screen. Nothing happens when user double taps on the screen, video can be started only using the play button.
  • Only Audio gets played for Azure video 360 assets
  • 4:3 Aspect Ratio is not displayed correctly and video gets cropped.
  • Clicking on the “Up-Next” video does not play for Pre-Mid-Post roll assets.

4.45.0 Released 2019-05-07

This release introduces new features and fixes previous issues.

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

* Use of AndroidX is required for your apps to use this version of the Ooyala Android SDK. Please see the following page for more information about migrating your application if using Support Libraries: https://developer.android.com/jetpack/androidx/migrate.

New in this Release

  • React Native update to 0.59.4

    Android is requiring apps built for 64 bit compatibility by August 1, 2019 (new apps): https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html.

    Starting from 0.59, React Native is 64 bit. Therefore, to allow our customers to have 64-bit support, we upgraded our React Native version in our SDKs to version 0.59.4.

  • Chapter Markers

    Overview

    Markers are graphical objects superimposed over the Ooyala timeline. Markers are used to display a variety of metadata about a file:

    • Instantaneous events can be displayed. In this case, the length of the timeline marker is determined by the player, and is designed to be the minimal width that is easily seen and clickable.
    • Timed duration events can be displayed. In this case, the metadata displays the marker on the timeline for the given duration.
    • Timed duration events can be displayed. In this case, the metadata displays the marker on the timeline for the given duration.
    • The timing of markers can be defined with respect to the beginning or end of the timeline to show the duration of the identified event duration (beginning and end).
    • The Marker JSON file can be ingested prior to playback and/or updated via player API at any time, similar to a Closed Caption file. The timeline marker will also be delivered to the player via the Content Tree API.

    Behavior

    • By clicking on a marker container (above the timeline), the playhead will jump to the defined start time for the marker.
    • If the user clicks on the highlighted marker area on the timeline itself, it will move the playhead to that exact point, rather than to the beginning of the chapter marker. That is, the timeline marker will behave as it does normally, with or without Chapter Markers.
    • If the user does a hover (or other) even that invokes the scrubber thumbnails, these thumbnails will appear on top of the scrubber thumbnails - they have visual priority over the chapter markers above the timeline.

    For more on how to utilize Chapter Markers, please see Chapter Markers.

  • Chromecast button in Ooyala Skin SDKs

    This is the most requested feature for Ooyalar applications. Users need to be able to access the Chromecast controls within the video player itself from Skin SDK.

    To use this feature in your application, make sure dependencies are added in build.gradle:

    dependencies {
              ...
                  implementation files('libs/OoyalaSDK.aar')
                  implementation files('libs/OoyalaCastSDK.aar')
                  implementation files('libs/OoyalaSkinSDK.aar')
              }
              

    If you don’t want to use cast make sure that you don't add dependencies in build.gradle.

    By default castControls in skin.json are disabled so it necessary to turn the on in skin.json:

    "castControls": {
              "enabled":true,
              ....
              }
              

    In this section of skin.json it also possible to manage the style of cast controls and what controls should be shown.

    More details can be found in ChromecastSampleApp provided to show the basic implementation.

  • Recycler View Support

    RecyclerView Sample App

    A new sample app shows how we currently support the OoyalaPlayer in a RecyclerView. The name of the app is misleading since it is called FullscreenSampleApp, but it only shows how to add OoyalaPlayers as items in a RecyclerView.

    Requirements

    • Android Studio 2.3.2 or above
    • Android SDK installed

    Description

    The main idea is to use only one instance of Ooyala player (SinglePlayerActivity) or several instances of Ooyala player (MultiplePlayerActivity) and reuse it when onBind is called in Adapter.

    OoyalaSkinLayout is initialized only once, the parent Frame layout adds OoyalaSkinLayout once the next item of RecyclerView is seen and removes it when scrolling reveals another video.

    In the sample app, multiple players should be embedded and perform the following:

    • As the user scrolls, the video autoplays when the player is fully in view.
    • Once scrolling continues, that player should be automatically paused.
    • Once scrolling reveals another player and scrolling stops, playback should be automatically started.
    • If the user pauses the video, the video will be paused.
    • Once scrolling reveals the player with the video that was paused by the user, the video won't play automatically.
    • The playhead time is saved for each video and each video starts from the time it was paused.
    • If the user unmutes any video player, all future videos should start up unmuted.
    • Embedded container should use most of the screen when viewed vertically, except for a header taking up some space title "Video Feed Sample App". Video embeds are separated by the text of the video title centered inline on the video list.
    • If the user moves the device to view horizontally while a video is being played, it automatically goes full-screen on the video.
    • If the user returns to portrait mode, the video becomes viewed as embedded in video list again.
    • If a video is not playing while viewed horizontally, then the list is expanded to full width.

    Activities

    • MainActivity
    • SinglePlayerActivity demonstrates how to use RecyclerView with the only one instance of OoyalaPlayer
    • MultiplePlayerActivity demonstrates how to use RecyclerView with several reusable instances of OoyalaPlayer

    Recommendation

    In skin.json the following fields have to be set as shown below:

    "endScreen": {
              "screenToShowOnEnd": "default",
              "showReplayButton": true,
              "replayIconStyle": {
              "color": "white",
              "opacity": 1
              },
              "showTitle": false,
              "showDescription": false,
              "infoPanelPosition": "topLeft"
              }
              
              "upNext": {
              "showUpNext": false,
              "timeToShow": 10
              }
              

    Especially, screenToShowOnEnd must be set as default and showUpNext - false.

  • Android CC menu consistent with iOS

    Since we added multi-audio support, we are forcing only the Audio menu icon to appear in the control bar. If a stream only has captions, we should still display the original Captions icon in the control bar. Only for Audio or Audio + CC should we display the Audio icon menu.

    This provides feature parity with iOS and web player:

    • Stream with no CCs: No Audio or Caption menu icon appears
    • Stream with CCs and single audio track: Captions icon is in control bar
    • Stream with no CCs but multiple audio tracks: Audio icon appears in control bar
    • Stream with CCs and multiple audio tracks: Audio Icon appears
  • Implement Analytics using native Android functions

    In this release we implemented Analytics part without Analytics.js and now we send all events to the gateway directly from Android SDK.

    This provides feature parity with iOS and web player:

    • Stream with no CCs: No Audio or Caption menu icon appears
    • Stream with CCs and single audio track: Captions icon is in control bar
    • Stream with no CCs but multiple audio tracks: Audio icon appears in control bar
    • Stream with CCs and multiple audio tracks: Audio Icon appears
  • Event listener to identify when the player control panel state changes

    In this release we added an event listener to identify when the player control panel state changes. To utilize, add a listener for instance of OoyalaSkinLayoutController class:

    playerLayoutController.addOnVisibilityControlsChangeListener(isVisible ->{
              //Your action
              Log.v(TAG, "Ui is visible: " + isVisible);
              });
              
  • Default menu behavior for assets containing closed-captions

    In this release we changed the default menu behavior for assets containing closed-captions but only a single audio language to only display the Closed Captions menu, rather than the combined Caption and Audio menu, with the Audio options unpopulated.

Fixed in this Release

  • Fixed an issue where clicking the Learn More link could allow skipping of add upon navigating back to the video.
  • Fixed an issue where the Live UI element was not displayed for Live assets.

Known Issues in this Release

  • Ooyala Skin SDK in this version uses React Native 0.59.4, whihc has a known fatal error in combination with Samsung Galaxy-type devices using Android 7. We do not have any know work-arounds for this issue and depend on this issue being addressed in an update to React Native
  • There is a known issue when application crashes randomly. This is rare reproducible with an application built for recyclerview functionalioty.App crashes randomly.
  • Marker is partly cut on selection when the marker position is close to the beginning/end of asset duration.
  • There is a known accessibility issue with Seekbar Talkback where the Talkback announcement does start immediately when the Seekbar is selected. Instead, the Talkback announcement is delayed by ~4 seconds.
  • Unable to pause Ad in IMA once the control menu is not visible.
  • There is an issue where offline playback would fail with an error when the downloaded asset used both HEVC and NON-HEVC codecs, using DashDownloader.

4.44.0 Released 2018-03-13

This release introduces new features and fixes previous issues.

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

* Use of AndroidX is required for your apps to use this version of the Ooyala Android SDK. Please see the following page for more information about migrating your application if using Support Libraries: https://developer.android.com/jetpack/androidx/migrate.

New in this Release

  • New DASH/HLS Downloader

    In this release, we have introduced a new DASH/HLS Downloader, which is based on the ExoPlayer downloader. This is in addition to the original Ooyala Android SDK DASH-only downloader that was available in previous releases. Both downloaders will be maintained in the near future, but due to the additional capabilities of the ExoPlayer-based downloader, we may deprecate the original downloader in future SDK versions.

    These two downloaders are:

    Note: For a demonstration on how the two downloaders work, try the Ooyala DownloadToOwnSampleApp sample app. Check OfflineDownloadActivity for the original DashDownloader downloader, and OoyalaOfflineDownloadActivity for the new OoyalaDownloader downloader based on ExoPlayer.

    This new functionality in OoyalaDownloader enables you to perform the following actions:

    • Download an asset.
    • Cancel a download in progress.
    • Pause a download in progress.
    • Resume a download of an asset.

      Note: This action is helpful when you need to cancel a download. When afterwards you try to download the asset again, the downloader will use the segments that have already been downloaded so the download will resume from the previous state.
    • Listen to updates on the download process.
    • Delete a downloaded asset.
    • Play a downloaded asset.
    • Check the license expiration date.
    • Prevent a downloaded asset from being played after a specific date.

    In this release, we support the use of closed captions for the downloaded asset. We do not support the following:

    • The use of a promo or static image representing the downloaded asset.
    • Multi-audio - the SDK will only download the default language for the asset.
    • Auto-deletion of assets that have an expired license.
    Note:

    When you uninstall the app used to download assets, the contents of the downloaded assets will remain on the device. To remove downloaded assets, use either of the following two options:

    • Delete the assets before uninstalling the app - to do so, use the APIs provided with DTO. This is the recommended approach.
    • Manually search for the file and remove it.

    The following requirements are in place for Download to Own (DTO) and Download to Rent (DTR) using the OoyalaSDK:

    • Android 4.1 (API 16) for non-protected clear DASH assets
    • Android 4.3 (API 18) for Widevine DASH assets
    • Google ExoPlayer

      Note: ExoPlayer version 2.9.0 (or higher) uses Java 8. See here for more information.
    • Android OoyalaSDK v4.21.0 and higher
    • Widevine DASH assets for defining rentals entitlements (DTR)
    • Android 5+ only for DTR

    Android supports downloading the following video formats:

    • Non protected clear DASH assets
    • Widevine DASH assets
    • HLS assets

Fixed in this Release

  • Fixed an issue where downloading for offline playback was not supported for assets transcoded via the AZURE transcoding engine.
  • Fixed an issue that prevented downloading of remote assets.
  • Fixed an Accessibility issue where the scrubber bar progress description would repeat the playback position after completing the video.

Known Issues in this Release

  • There is a known accessibility issue with Seekbar Talkback where the Talkback announcement does start immediately when the Seekbar is selected. Instead, the Talkback announcement is delayed by ~4 seconds.
  • There is an issue where offline playback would fail with an error when the downloaded asset used both HEVC and NON-HEVC codecs, using DashDownloader.

4.43.0 Released 2018-02-19

This release introduces new features and fixes previous issues.

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

* Use of AndroidX is required for your apps to use this version of the Ooyala Android SDK. Please see the following page for more information about migrating your application if using Support Libraries: https://developer.android.com/jetpack/androidx/migrate.

New in this Release

  • New skin.json parameter to hide/show the Player’s Control Panel

    In this Player release, we have added an option that enables you to hide/show the bottom control panel in the Player’s user interface via the new controlBar parameter you can use in the skin.json file.

    To use this option, add the following code to skin.json and set the value of "enabled": true to true or false:

    "controlBar": {
              "enabled": true,
              "volumeControl": {
                  "color": ""
    Note: If the controlBar parameter is not set, the bottom control panel is shown by default.
  • Support for opacity control when displaying Closed Captions

    In this Player release we have added support for controlling the opacity level when displaying Close Captions / subtitles based on the opacity setting in skin.json.

    To set the default background opacity for Closed Captions, use the closedCaptionOptions.backgroundOpacity property in skin.json. As a result, the background opacity of the Closed Captions frame will be set based on this property’s value. So when the default opacity is set to be partially transparent, it will render with transparency when Closed Captions are enabled.

    Note: This feature is currently supported for Ooyala Skin SDK only.
  • Support for download serialization for assets with the Ooyala Player Token enabled

    In this Player release we have introduced support for download serialization for assets with the Ooyala Player Token enabled.

Fixed in this Release

  • Fixed an issue where the Replay icon was displayed while seeking back after the video had ended.
  • Fixed an issue where the subtitle text would be shifted to the left-hand side of the screen instead of the center for VR 360-type videos.
  • Fixed an issue where playback failed when playing Ooyala Player Token enabled audio-only assets.
  • Fixed an issue where the Syndication Error message was not fully visible in the Player (truncated).
  • Fixed an issue with resizing the Playback speed menu where it did not fit as expected after layout changes, and it could not be closed when vertical layout was used.

4.42.1 Released 2018-12-29

This release introduces new features and fixes previous issues.

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

* Use of AndroidX is required for your apps to use this version of the Ooyala Android SDK. Please see the following page for more information about migrating your application if using Support Libraries: https://developer.android.com/jetpack/androidx/migrate.

New in this Release

  • Audio-Only Player

    In this release, we have introduced support for audio-only streaming.

    To set up an Ooyala Player for Audio-Only streaming, ensure that the Player is configured to only use audio-only content - no video (including slates) should be present in streams for audio-only use.

    For a demonstration of this feature, please see our sample application on the following link, and refer to the configuration notes below:

    https://github.com/ooyala/android-sample-apps/pull/383

    In this Ooyala Android sample application bundle, you must also add the new setAudioOnly(true) option to the createPlayerOptions() method in the AudioOnlyPlayerActivity.java file (located under /OoyalaSkinSampleApp/app/src/main/java/com/ooyala/sample/players/):

    private Options createPlayerOptions() {
              return new Options.Builder()
              .setShowNativeLearnMoreButton(false)
              .setShowPromoImage(false)
              .setUseExoPlayer(true)
              .setAudioOnly(true) // This is crucial
              .build();
              }
    Note:
    • Audio-Only stream auto-detection is not yet supported in this release - users must specify in advance what type of Player they would use to play a stream with (Audio-Only type or Video type).
    • See the Introduction to Audio-Only Player documentation section for more information about Ooyala’s Audio-Only streaming support.
  • Closed Captions with Offline Playback

    In this release we have introduced support for Closed Captions for downloaded assets when those are played offline. This feature is automatically enabled starting with this mobile SDK version and no additional configuration is required.

  • Option to Set Initial Bitrate Estimate

    In this release we have introduced the option to define a custom initial bitrate for ExoPlayer using the new setBitrateEstimate method. This feature enables you to configure the Player to start with an initial bitrate that is higher than the first bitrate in the manifest (typically the lowest bitrate). When you provide a value for setBitrateEstimate, the ExoPlayer’s ABR logic adapts the initial bitrate estimate setting accordingly, similar to what it would normally do via measuring the network speed.

    The other new method, getBitrateEstimate, enables you to check the current bitrate estimate setting.

    Quick configuration steps follow below. For more information, please see our API documentation for setBitrateEstimate and getBitrateEstimate methods here.

    To set the initial bitrate estimate:

    1. After Player initialization, add the following line to completePlayerSetup under OoyalaSkinPlayerActivity. The setBitrateEstimate value must be in the range between the lowest and highest possible values.
      player.setBitrateEstimate(X);

      Where X is your bitrate setting, for example:

      // For HLS, add:
                player.setBitrateEstimate(600);
                // For DASH, add:
                player.setBitrateEstimate(1200);
    2. Build and launch the App.
    3. Select the desired asset and play it.

Fixed in this Release

  • Fixed an issue where, after disconnecting from Chromecast Receiver using the Mini-Controller, playback would start from the beginning on the sending device.
  • Fixed an issue where selecting the multi-audio icon would cause the video playback to pause.
  • Fixed an issue where switching between PlayerView and MediaListView when paused while casting would automatically cancel the pause and trigger playback.
  • Fixed an issue with High Availability failover of live streams containing multiple audio languages, where the audio language list of the primary channel would be retained after failover.
  • Fixed an issue with the Freewheel Ad plugin that would sometimes cause the app to crash.
  • Fixed an issue with split-screen mode where moving the video from the top split screen to the bottom would make the video become black.
  • Fixed an issue for split screen mode where the full-screen button would sometimes be disabled.

Known Issues in this Release

  • In this release, download serialization is not supported for assets with the Ooyala Player Token enabled.

4.41.0 Released 2018-12-03

This release introduces new features and fixes previous issues.

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

* Use of AndroidX is required for your apps to use this version of the Ooyala Android SDK. Please see the following page for more information about migrating your application if using Support Libraries: https://developer.android.com/jetpack/androidx/migrate.

New in this Release

  • TLS 1.2+ used for all supported versions of Android

    In this release, communications use TLS 1.2+ for all supported versions of Android, even if the default TLS version is below v.1.2 (for example, Android 4.x versions). Supported Android 4.x versions use TLS 1.0 by default.

  • SDK communications use SSL by default on Android 9

    In this release, SDK communications automatically default to use SSL if using Android 9 (API Level 28) or higher.

Fixed in this Release

General

  • Changed the behavior for the multi-audio menu (using Skin SDK), where opening the menu to change languages no longer pauses the video.
  • Fixed an issue where pausing and leaving for several minutes and continuing later could cause a playback error.
  • Fixed an issue where when a manifest synchronization error occurred, the player was not surfacing an error.
  • Fixed an issue with the Ooyala Skin SDK where for a small player embed, some menu options would not be available.
  • Fixed an issue where the “previous” video button would get in an infinite buffer state.
  • Fixed an issue with the Skin SDK where toggling full-screen and moving between landscape and portrait viewing mode would cause misalignment with the control bar.
  • Fixed an issue with the Chromecast Sender where playback on the Chromecast Receiver would continue even after disconnecting the device.
  • Fixed an issue where a failover (High Availability-use-case) of a stream with multiple audio tracks that were not consistent between primary and secondary channels would continue to list the audio tracks of the primary stream in the player after failover to the secondary channel.

Accessibility

  • Fixed an issue where when scrubbing in accessibility mode, the percent progress was not audibly described.
  • Fixed an issue where extra characterized were verbalized when selecting the closed caption area in Accessibility mode.

Known Issues in this Release

  • After disconnecting from the Chromecast Receiver, the Player incorrectly starts playback from the beginning in the Chromecast Sender device.
  • Using playback speeds larger than 1X during ad breaks using Ooyala SSAI may cause playback issues of the ads with post-rolls.

4.40.0 Released 2018-10-10

This release introduces new features and fixes previous issues.

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

New in this Release

  • Variable Speed Playback

    In this release, we introduce a new Player menu for controlling the playback speed.

    The new Speed menu enables you to change playback rates in the range between 0.5x and 2.0x. Values below this range default to 0.5x, while values above this range default to 2.0x. The Speed menu is configurable within this range.

    Please note that:

    • This feature is only available when using the Ooyala Skin SDK.
    • The variable speed menu is disabled by default.
    • The default speed is 1X (normal). However, the default playback rate can be set with a new player param of initialPlaybackRate.
    • If the player moves to a new video (for example, via Discovery or Playlists), the playback rate setting should be retained.

    Variable Speed Playback Configuration

    Note: For the Playback Rate menu, VR 360 type videos are not supported. As a result, the playback rate menu should not be enabled for players used to play VR 360 videos directly, or in mixed Flat and VR 360 playlists.

    Initial Speed Playback

    You can set the playback speed you desire at the start of the video using player parameters and setting initialPlaybackSpeed to a number between 0.5 (half initial speed) and 2 (twice initial speed). You can also set the desired playback speed of the next video when using setEmbedCode and setting the player parameters.

    {
              “initialPlaybackSpeed”:2
              }

    Manually Setting Playback Speed

    If you want to set playback speed without using the Ooyala UI, use the following apis.

    [playerName].setPlaybackSpeed(speed);

    Variable Play Speed Menu

    The Playback Speed menu can be enabled by declaring a “playbackSpeed” button inside the buttons.desktopContent property of the skin configuration. The button should be added in the order in which it is meant to appear within the control bar.

    You must also specify all of the other buttons you want, since any buttons omitted from this list are considered disabled. Below is an example of the skin’s default configuration, with a “playbackSpeed” button configured to appear after the “share” button:

    skin.json
    {
              "buttons": {
              "desktopContent": [
                { "name": "playPause", "location": "controlBar", "whenDoesNotFit": "keep", "minWidth": 45 },
                { "name": "volume", "location": "controlBar", "whenDoesNotFit": "keep", "minWidth": 240 },
                { "name": "live", "location": "controlBar", "whenDoesNotFit": "keep", "minWidth": 45},
                { "name": "timeDuration", "location": "controlBar", "whenDoesNotFit": "drop", "minWidth": 145 },
                { "name": "flexibleSpace", "location": "controlBar", "whenDoesNotFit": "keep", "minWidth": 1 },
                { "name": "share", "location": "controlBar", "whenDoesNotFit": "moveToMoreOptions", "minWidth": 45 },
                { "name": "playbackSpeed", "location": "controlBar", "whenDoesNotFit": "moveToMoreOptions", "minWidth": 45 },
                { "name": "discovery", "location": "controlBar", "whenDoesNotFit": "moveToMoreOptions", "minWidth": 45 },
                { "name": "closedCaption", "location": "controlBar", "whenDoesNotFit": "moveToMoreOptions", "minWidth": 45 },
                { "name": "quality", "location": "controlBar", "whenDoesNotFit": "moveToMoreOptions", "minWidth": 45 },
                { "name": "logo", "location": "controlBar", "whenDoesNotFit": "keep", "minWidth": 125 },
                { "name": "stereoscopic", "location": "controlBar", "whenDoesNotFit": "keep", "minWidth": 45 },
                { "name": "audioAndCC", "location": "controlBar", "whenDoesNotFit": "moveToMoreOptions", "minWidth": 45 },
                { "name": "fullscreen", "location": "controlBar", "whenDoesNotFit": "keep", "minWidth": 45 },
                { "name": "moreOptions", "location": "controlBar", "whenDoesNotFit": "keep", "minWidth": 45 },
                { "name": "arrowsBlack", "location": "mainView", "whenDoesNotFit": "keep", "minWidth": 45 }
              ]
              }
              }
    Configuring Playback Speed Options

    The speeds that are displayed on the Playback Speed menu can be configured using the playbackSpeed.options property of the skin configuration. The values should be numbers from 0.5 to 2 and have at most two decimals. The player filters out any invalid values and automatically sorts the options in descending order. The following values are used by default: 0.5, 0.75, 1, 1.25, 1.5, 2. Sample overrides are shown below:

    skin.json
    {
              "playbackSpeed": {
              "options": [ 0.5, 1, 1.5, 2 ]
              }
              }                   
  • Analytics for Offline Playback

    In this release, we add support for capturing analytics in Ooyala IQ when no network connection is available. With this version, events are captured and reported the next time the device is connected.

    Note: In previous versions, playback events (when playing local files) were only reported when a network connection was still available.

    You can configure the analytics for offline playback feature to upload offline data either with a wifi connection only, or with any connection.

Fixed in this Release

  • Resolved an issue where, on HA failover, playback could start from up to 60 seconds further ahead. This happened because Player moved to the same play head position when that position had already slid ahead due to the moving DVR window. The playback offset time would vary depending on whether the DVR window was growing or static.
  • Resolved an issue where clicking on Mini-Controller in the media list view screen in the Player App caused the App to disappear and the following error message was shown: “ChromeCastSampleApp Keeps stopping”.
  • Resolved an issue where playback stopped and could not continue after switching between PlayerView and MediaListView on pause state while casting.
  • Resolved an issue where, when you fast-switched between live channels several times by quickly multi-tapping the SET EMBED CODE button, a black screen would appear with audio still playing.
  • Resolved an issue where the Learn more button disappeared after switching to full screen mode.
  • Resolved an issue where, with VR 360 videos, the control bar might flicker on some Android devices.
  • Resolved an issue where video playback would be paused and the play/pause button would disappear after the player area on the touch screen was tapped with more than one finger at once.
  • Resolved an issue where the InitialTime setting did not work for Live assets with OSP.
  • Resolved an issue where the scrubber bar tappable size was too small and therefore difficult to use - it has now been increased to provide for better usability for this functionality.

Known Issues in this Release

  • On some Android v4.4.4 devices, offline playback does not work for downloaded DRM assets when wifi is disabled for offline playback.
  • Geo Blocking service fails to show Geo Error on devices with Android v4.4.
  • Due to technical reasons, some users with older API devices might experience freezing/lagging of video and sound when playback speed differs from normal. These issues are mostly observed on devices using API versions prior to v7.0.

    To ensure a safe and smooth user experience, it is recommended to enable playback speed configuration for v7.0+ devices.

  • The secondary subchannel lists the audio tracks from the primary subchannel.

Important Notes for this Release

Accessibility support is only implemented in the Ooyala Skin SDK.

4.39.0 Released 2018-09-13

This release introduces new features and fixes previous issues.

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

New in this Release

  • Closed Captions with SSAI

    We have added support for Closed Captions in combination with Ooyala Server-Side Ad Insertion (SSAI).

  • Option to Set Maximum Allowed Bitrate and Resolution

    We have added new functionality that enables you to set a maximum bitrate and a maximum resolution that the Player is allowed to play. To set these limits, use the setMaxBitrate and setMaxVideoSize methods in the ExoConfiguration object.

    Note: If the maximum bitrate or resolution is set to a value lower than the lowest available bitrate, the lowest available bitrate or resolution stream will be played.

    A configuration example is shown below:

    ExoConfiguration exo = new ExoConfiguration.Builder().setMaxVideoSize(500,400).setMaxBitrate(800000).build();
              Options options = new
              Options.Builder().setShowNativeLearnMoreButton(false).setShowPromoImage(false).setUseExoPlayer(true).setExoConfiguration(exo).build();
              player = new OoyalaPlayer(pcode, playerDomain,this, options);

    See the Ooyala Mobile SDK for Android documentation for more information.

  • Option to Send Custom Player Parameters to Chromecast Receiver

    We have added new functionality that enables you to send custom Player parameters in the Chromecast Sender to the Chromecast receiver. To do so, use the CastManager class.

    See the Ooyala Mobile SDK for Android documentation for more information.

  • Additional Reporting Events with SSAI

    We have added support for additional reporting events when Ooyala Server-Side Ad Insertion (SSAI) is used. The following events are triggered:

    • fullscreen event when the user switches to Full Screen.
    • mute event when the user completely mutes the device.
    • unmute event when the user unmutes the device.

Fixed in this Release

  • Resolved an issue where the getCombinedBitrate function did not return a correct value.
  • Resolved an issue where the SkipForward / SkipBackward buttons did not always skip forward/back the correct duration for videos with a long total duration.
  • Resolved an issue where the Upnext asset audio would play in the background when a user clicked the Back button right before the start of the Upnext asset.

Known Issues in this Release

  • On Samsung devices, the native Samsung media controller widget is not functioning correctly to manage the Ooyala Player. For Chromecast on Samsung devices, this media widget may need to be disabled to enable the Ooyala Player to manage the Chromecast playback experience.
  • For High Availability Live streams that have multiple audio tracks, if one stream has more audio tracks than the secondary audio track, the audio track labels may persist in the player from the first Live stream.
  • With VR 360 videos, the control bar may flicker on some Android devices.
  • Geo Blocking service fails to show Geo Error on devices with Android v4.4.
  • Switching between pause and play mode on Chromecast Receiver while casting discontinues playback. With Chromecast SDK, when you start video playback on the Chromecast Receiver and you click the Pause button while casting and then the Play button, the video playback does not continue on the Chromecast Receiver app as expected - only the button state changes.

Important Notes for this Release

Accessibility support is only implemented in the Ooyala Skin SDK.

4.38.0 Released 2018-08-15

This release introduces new features and fixes previous issues.

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

New in this Release

  • Server-Side Ad Insertion (SSAI) for Live and VOD

    This release version begins support for the Ooyala Server-Side Ad Insertion (SSAI). SSAI provides a TV-like seamless viewing experience that also prevents monetization loss from ad blockers. Ooyala’s SSAI solution can work with any player, but has some additional capabilities when used with the Ooyala HTML5 Player; specifically:

    • Locking of the player controls during the ad (prevents user from being able to seek past an ad break)
    • Impressions are handled client-side, providing potentially higher fidelity vs. server-side reporting.
    • More client-side impression events beyond playhead position are reported automatically.

    For more information on Ooyala’s Server-Side Ad Insertion, please see Server Side Ad Insertion.

  • New optional skip Forward/Rewind buttons: The display now includes skip buttons, which can be customized to specify the amount of seconds to skip forward or back in the current video. Also displayed are buttons to skip back to the beginning of the current video, or forward to the beginning of the next one.

    To enable/disable skip buttons:

    1. Go to skin.json in your app.
    2. Search for the skipControls object.
    3. To enable the skip buttons, change the enabled: false value to enabled:true.
    4. Start the app and the skip buttons will be shown.

    To change the value of the skip backward button:

    1. Go to skin.json in your app.
    2. Search for the skipBackwardTime object.
    3. Set its value in the range between 0 and 99.

    To change the value of the skip forward button:

    1. Go to skin.json in your app.
    2. Search for the skipForwardTime object.
    3. Set its value in the range between 0 and 99.

    For more information, see the User Interface documentation.

    Example:

  • Support for multiple closed-captions in Live streams. Requires fragmented WebVTT in DASH stream packaging.
  • Tracking Opt-Out Controls (GDPR)
    Note: The following options are for disabling or modifying tracking for the GUID value that the Ooyala Player generates and stores to identify the uniqueness of devices. Ooyala considers this information to be necessary for delivery of services, but it is up to each customer to define their own compliance requirements with GDPR. However, it is VERY IMPORTANT to understand that if these opt-outs are used, it will a) irreparably impact the accuracy of your analytics information, and b) it may impact the player’s behavior for features that rely on this value, such as recommendations (Discovery) and Cross-Device Resume. Recommendation: only use this when deemed necessary, and apply per end-user basis.
    The Web Player provides two setting levels for tracking metrics: Default, and Disabled, as described below:
    • Default: Used if the value is explicitly set to Default or if it is undefined. Standard analytics tracking is done in this case. Ooyala does not capture and store personally identifiable information (PII), except where necessary to facilitate specific functions (for example, purchases), and only when it is specifically provided from the website or application. However, Ooyala does create a random unique device identifier (GUID) that is stored and persists between sessions so that unique user counts can be accurate.
    • Disabled: For this setting, all tracking events are disabled.
      Note: IMPORTANT: If this setting is used, all video analytics (media play events) will not be reported for users, so products like IQ will under-report actual usage.

      Usage example:

      <script>
                window.OO = { trackingLevel: 'disabled' };
                // Possible values: 'default', 'disabled'
                </script>
                <script src="//player.ooyala.com/static/v4/production/core.min.js>
                </script> 
      Note: In the usage example above, the parameter must be set before the core script. This could be the standard embed script as well.

Fixed in this Release

General

  • Resolved an issue where the functions getCombinedBitrate, getAudioBitrate, and getVideoBitrate did not return the correct value in some cases.
  • Resolved an issue where the getWidth(), getHeight(), and getUrl() functions did not return the correct values.
  • Resolved an issue where translations for some of the strings were missed for Japanese, Korean and Chinese.
  • Resolved an issue where the cue point was in the wrong position and the Post-Roll Ad played along with the main asset.

Accessibility

  • Resolved an issue where the up next button in the discovery overlay could not be selected when the voice assistant was turned on.
  • Resolved an issue where sounds for "Fullscreen" and "Fullscreen close" events were incorrectly mapped for readout.

Chromecast

  • Resolved an issue where an elemental transcoded eHLS asset did not play on the Sender App.

Known Issues in this Release

  • In Accessibility Mode, videos cannot be started by using double-tap.
  • With VR 360 videos, the control bar may flicker on some Android devices.
  • SkipForward and SkipBackward buttons may not skip forward/back the correct duration for videos with a long total duration.

Important Notes for this Release

Accessibility support is only implemented in the Ooyala Skin SDK.

4.37.0 Released 2018-07-18

This release introduces new features and fixes previous issues.

* denotes a document section updated on 2018-07-25

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

New in this Release

  • Previously, the current time and total duration elements in Ooyala Player were not accessible by screen readers. As a result, visually impaired viewers were unable to see what the current playhead time and the full video length were when they navigated to those elements in Ooyala Player. This functionality has now been improved to enable visually impaired users to navigate to the current time and total duration elements and have the screen reader read out the current playhead position time and the total video duration time.

Fixed in this Release

  • The screen reader will now describe the percentage of the duration when scrubbing with Accessibility mode enabled.
  • Fixed an sync issue when two devices would be connected to the same Chromecast receiver and playing a video.
  • Fixed an issue that would cause VR 360 videos to show the play icon after selecting the Replay button.
  • Fixed an issue that would cause the Chromecast controller to be unable to resume a video.
  • Fixed an issue that would cause the ad cue points to no longer display after a preroll ad was completed (Google IMA with Ad Rules).
  • * Encrypted HLS (eHLS) streams are now supported with this release.

Known Issues in this Release

General

  • There is a known issue relating to React Native 0.50-0.54.4 that is incompatible with the VR 360 menu and causes the menu to flicker. As a result, we do not recommend using this release for VR 360 content and are working to get a resolution in a newer version of React Native.
  • Certain devices lacking a gyroscope sensor would not be able to support VR 360 video. The player relies on the gyroscope sensor for generating the right orientation playback.
  • Video cannot be started by double-clicking because accessibility is only supported by Ooyala Skin and not by native skin.

Chromecast

  • When casting and then returning to the Chromecast via the Home button, resuming the video from the Chromecast notification may be disabled.
  • Using the Ooyala Web Player versions other than Ooyala Web Player 4.20.9 in the Chromecast Receiver has known issues and is not recommended.

4.36.0 Released 2018-06-07

This release introduces new features and fixes previous issues.

* denotes a document section updated on 2018-07-06

Compatibility with this Release

This release was tested for compatibility with the following integrations:

New Features

Provides a simple configuration for connections to run over HTTPS.

OoyalaPlayer.enableSSL(true); //<new line>
          player = new OoyalaPlayer(pcode, playerDomain, options);
          
          or
          
          OoyalaPlayer.setEnvironment(Environment.EnvironmentType.PRODUCTION,Environment.PROTOCOL_HTTPS);
          player = new OoyalaPlayer(pcode, playerDomain, options);

Resolved Issues

  • Resolved an issue causing a shifted view being rendered on full screen landscape mode with VR 360 videos
  • Fixed an issue where seekCompleted event was not getting triggered on seeking past a midroll ad.
  • Fixed an issue to persist audio track selection post app minimization and return.
  • Updated the error text for Device Limit Exceeded to be more informative and actionable to end-users.

Known Issues *

General

  • Asset Description is not in sync on sender screens, when two devices cast at the same time with two different assets.
  • Talkback does not occur for the percentage of video while seeking.
  • The Live button is not shown in the app during playback of live assets in Portrait mode.
  • For the Download / Offline Playback Feature:
    • When playing a downloaded DRM asset, some devices like Samsung tab might have an issue acquiring the DRM license keys required for playback.
    • Download/offline playback is currently not supported for Azure-transcoded assets.
  • A RESUMED event is sometimes reported when a pause event occurs during an ad and the application is pushed to the background.
  • Videos with a 4:3 aspect ratio may be truncated.

Chromecast

  • Encrypted HLS (eHLS) streams are not supported with this release.
  • When casting and then returning to the Chromecast via the Home button, resuming the video from the Chromecast notification may be disabled.

4.35.0 Released 2018-04-30

This release introduces new features and fixes previous issues.

New Features

  • Multi-Audio Streaming: This release provides support for Multi-Audio streaming. For more information about Ooyala’s support of multi-audio, please see our Multi-Audio guide.
  • HEVC Support: This release provides support for HEVC streams. In this release, the player will detect whether the device/hardware is capable of HEVC playback and failover to AVC (H.264) streaming if unsupported. Make sure to call Options enableHevc method so that your player uses HEVC. For more on Ooyala’s support for HEVC, please see our HEVC Guide.

Resolved Issues

  • The Player UI used to show a DRM Server error message if the device registration limit and/or the Account Entitlement limit was exceeded. To be more descriptive in such scenarios, we added error subtitles to distinguish between the reasons for playback failure:
    • Error: Device Limit has been reached
    • Error Subtitle:
      • I. Entitlement Device limit has been reached
      • II. Account Device limit has been reached

Known Issues

  • The Live button is not shown in the app during playback of live assets in Portrait mode.
  • For the Download / Offline Playback Feature:
    • When playing a downloaded DRM asset, some devices like Samsung tab might have an issue acquiring the DRM license keys required for playback.
    • Download/offline playback is currently not supported for Azure-transcoded assets.
  • A RESUMED event is sometimes reported when a pause event occurs during an ad and the application is pushed to the background.
  • Videos with a 4:3 aspect ratio may be truncated.

SDK Documentation: Ooyala Mobile SDK for Android documentation

4.34.1 Released 2018-04-13

New Features

  • We have updated the UI element for Closed Captions. It will now appear in the control bar next to the Fullscreen button. This change is only applicable if you are using our SKIN SDKs.

Resolved Issues

  • Resolved an issue that may cause orientation lock on pressing back button during ad playback.
  • Fixed an issue that may cause Chromecast to disconnect automatically after 10 minutes. Note: This issue was fixed on the Receiver application. The fix is automatic for customers using the Ooyala v4 Receiver application.
  • Fixed an issue that could prevent seeking in the DVR window for live videos.

Known Issues

  • Android devices below Android v 5.0 are unable to play VR 360 videos. VR 360 videos require Android v5.0 operating system or later. Older version of the Android operating system don’t support VR 360 video.
  • The Live button is not shown in the app during playback of live assets in Portrait mode.
  • For the Download / Offline Playback Feature:
    • When playing a downloaded DRM asset, some devices like Samsung tab might have an issue acquiring the DRM license keys required for playback.
    • Download/offline playback is currently not supported for Azure-transcoded assets.
  • A RESUMED event is sometimes reported when a pause event occurs during an ad and the application is pushed to the background.
  • Videos with a 4:3 aspect ratio may get truncated.

SDK Documentation: Ooyala Mobile SDK for Android documentation

4.34.0 Released 2018-04-04

This release introduces new functionality and fixes previous issues.

New Features

  • Updated Chromecast sender to new version Google Cast V3.
  • This release upgrades to ExoPlayer v2.6.1. Be sure to add this version in your app as well. Support of new features unique to ExoPlayer 2.6.1 are not exposed in this release, and will be forthcoming.
  • A new method was added to the OoyalaPlayer object.
    • createBitmapScreenshot: Builds and returns an image from the current frame being rendered/played by the player. This is useful to aid as a visual bridge during the transition between two activities.
      Note:
      • This method only works on non-DRM content.
      • VR360 videos are not supported for this method.

Resolved Issues

  • For the Chromecast sender, fixed issues that caused the following:
    • Continuous loading spinner appears on replay.
    • Play/Pause button state is not working properly.
    • Mute icon fluctuates on receiver screen.
    • Audio does not stop when switched from one video to another video in mediaListView.
    • Switch to PlayerView from mediaListView does not display the scrubber bar, while casting.
  • Fixed an issue where the video could not be paused and played on Fire TV when using the Amazon Fire TV remote.
  • Talkback now announces the name of the scrubber bar controls properly [Accessibility].
  • Fixed an issue where the video could hang when seeking to end on replay, and crashes when the cardboard button is clicked (VR 360 videos).
  • Fixed an issue where the "Play button" would continuously displays on the video screen if the user returns from the learn more window after pausing the ad.
  • Fixed an issue that was causing VR 360 videos associated with Google IMA podded ads; if the user played the video to the end, clicked the replay button, and seeked to the end of the video, the video would hang.
  • Fixed an issue where the Initial view direction for Android video was off by 90 degrees with VR 360-type videos compared to iOS.

Known Issues

  • Android devices below Android v 5.0 are unable to play VR 360 videos.
  • The Live button is not shown in the app during playback of live assets in Portrait mode.
  • Chromecast is disconnected automatically after 10 minutes in Android.
  • For the Download / Offline Playback Feature:
    • When playing a downloaded DRM asset, some devices like Samsung tab might have an issue acquiring the DRM license keys required for playback.
    • Download/offline playback is currently not supported for Azure-transcoded assets.
  • A RESUMED event is sometimes reported when a pause event occurs during an ad and the application is pushed to the background.
  • Videos with a 4:3 aspect ratio may get truncated.

SDK Documentation: Ooyala Mobile SDK for Android documentation

4.33.0 Released 2018-03-07

This release introduces new functionality and fixes previous issues.
Note: We have changed how we distribute the OoyalaSDK. It is now in OoyalaSDK.aar instead of OoyalaSDK.jar.

New Features

Resolved Issues

  • Fixed an issue with HLS streaming in which lines were skipped when playing closed captions.
  • Fixed an issue in which network connection issues (timeout exception or connection interrupted/closed) would cause an error and stop playback immediately. With this release, if a user switches from one network to another (for example, WIFI to cellular, or vice versa), they will no longer see the error message immediately, and the retry mechanism will kick-in until the device is connected to a different network and is able to continue to download and play back the video.
  • Fixed an issue in which skipping an IMA ad might crash the application.

Known Issues

  • For Google IMA ads on some devices, after pausing an ad, if the user leaves the app and then returns, the ad is automatically resumed rather than waiting in a pause state.
  • Closed captions for Live streams are not yet available with the Azure transcoded channels.
  • For the Download/Offline Playback feature:
    • When playing a downloaded DRM asset, some devices like Samsung tab might have an issue acquiring the DRM license keys required for playback.
    • Download/offline playback is currently not supported for Azure-transcoded assets.
  • When playing a VR video, if the user turns the device to landscape mode, the view direction is shifted (approximate to 90 degrees) for monoscopic and stereoscopic modes.
  • For VR 360 videos associated with Google IMA podded ads, if the user plays the video to the end, clicks the replay button, and seeks to the end of the video, the video can hang.
  • After playing a midroll ad, the seekCompleted event from the player gets disabled in the same playback session.
  • When setting up multiple IMA Non Ad Rules ads in a video, after playing the first ad, there might be a delay in showing the ad controls for the subsequent ads of the video.

SDK Documentation: Ooyala Mobile SDK for Android documentation

4.32.0 Released 2018-02-05

This release introduces new functionality and fixes previous issues.

New Features

Resolved Issues

  • Improved the handling of null fields in Ads JSON arrays for the IMA SDK.
  • Fixed an issue in which a black screen was displayed while playing an asset with the combination of High Availability and DASH-CENC with Widevine DRM.
  • The Scrubber bar is now selectable with voiceover.
  • Fixed an issue in which the Screen Reader was reading "H" for the "Play" button in the Discovery Up Next window.
  • Fixed an issue in which IMA Ads were triggered twice. An IMA ad is now requested only once during player load.
  • The mute state is synchronized between ads and video with the IMA SDK.

Known Issues

  • For the DTOSampleApp, playback for a downloaded asset is not working correctly on some Samsung Tab devices running Android v4.4.
  • For Download to Own (DTO) and Download to Rent (DTR) offline playback, DASH streams transcoded by Azure are currently not supported.

SDK Documentation: Ooyala Mobile SDK for Android documentation

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.

SDK Documentation: Ooyala Mobile SDK for Android documentation

4.31.0 Released 2017-12-22

New Features

  • VR 360 Video Support: This release introduces support for video-on-demand VR 360-type videos. For an overview, see VR 360 Videos.
    • To demonstrate how to enable VR 360 video playback, we have added two new sample apps in the android-sample-apps repository (VRSampleApp for Java and VRSampleAppKotlin for Kotlin).
    • To implement VR in your app, you will need to add the OoyalaVRSDK.jar library, as well as add the OoyalaSDK.jar library (because it is a dependency of the OoyalaVRSDK library).
    • Download Ooyala VR 360 SDK for Android.
  • 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.

SDK Documentation: Ooyala Mobile SDK for Android documentation

4.30.2 Released 2017-12-14

Fixed in this Release

Closed captions were not working on DASH and Live streams.

SDK Documentation: Ooyala Mobile SDK for Android documentation

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.

SDK Documentation: Ooyala Mobile SDK for Android documentation

4.30.0 Released 2017-12-01

New Features

  • This release brings support for High Availability for Ooyala Live.

Resolved Issues

  • Fixed an issue impacting downloads of DASH streams.
  • Fixed an issue impacting initiating playback using the Amazon Fire TV remote controller in the OoyalaSkinSampleApp.

Known Issues

  • In our sample apps, when an ad is about to start and go back to the previous screen, you might hear the ad audio playing for a few seconds.
  • Support 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.

SDK Documentation: Ooyala Mobile SDK for Android documentation

4.29.0 Released 2017-11-16

New Features

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

SDK Documentation: Ooyala Mobile SDK for Android documentation

4.28.2 Released 2017-10-04

  • Updated to ExoPlayer 1.5.9.
  • You can now customize DeviceInfo for IQ Analytics.
  • 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.

SDK Documentation: Ooyala Mobile SDK for Android documentation

4.28.0 Released 2017-09-14

New Features and Enhancements

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

For this version, ExoPlayer v.2.6.1 is applicable.

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-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.
    • 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 mobile_sdk_android_offline_playback_download_to_own_dto.html#offline_playback_download_to_own_dto_for_ios.
    • 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 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:

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.