Mobile SDK for iOS Release Notes

4.48.0 Released 2019-09-30

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

  • WebVTT CC support added to iOS SDK

Fixed in this Release

  • OoyalaSkinSampleApp and AdvancedPlaybackSampleApp are failed to build.
  • With the VAST ad plugin, after playing midroll, video starts to play from the beginning instead of resuming from the midroll position.
  • Getting exception when go back from Player screen on iOS 10.x
  • Offline Playback for FairPlay thru DRM error on all iOS Versions

Known Issues in this Release

New:

  • There are no new known issues in this release

The following issues from previous releases still exist:

  • Cue points are displayed and Ads are played when the asset is replayed.
  • Postroll Ads freeze and then resume playback after the Ad’s original duration when the PlaybackSpeed rate is set to > 1x.
  • Assets cannot be replayed during Airplay.
  • Assets with Closed Captions with Fairplay DRM may have issues with seeking to the end of the video.
  • In this release, there is an intermittent issue with replaying assets when using Chromecast..
  • Syndication error (unauthorized location error) messages are not correctly displayed.
  • Resuming Fairplay assets from control center will not work when the app is in background.
  • HLS FPTS Assets with CC are NOT getting OFFLINE playback on iOS V10.3 devices
  • Mini-Controller for “MediaListView” screen is not displayed on REPLAY
  • Download still continues even after pausing/cancel it
  • 1080p and higher VR 360 assets are not playable on iOS 10

4.47.0 Released 2019-09-11

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

  • PiP adopted for assets with advertisement and video is not paused anymore

Fixed in this Release

  • IMA Podded Ads are not playing Appropriately during airplay
  • Pulse assets are not playing on appleTV.
  • [Audio Only] Player buffers continuously on trying to play audio asset with profile m4a
  • Unexpected "Learn more" image is present below the "Learn more" button during ad playback
  • [OoyalaSkinSampleApp][FW][IMA] Clicking Replay button is opening Discovery/Unresponsive when "learn more" is clicked during Postroll ad playback
  • [OoyalaSkinSampleApp] [2.0 and 5.1 HLS Video] Issue when the upnext video is not playable on iOS
  • [FWSampleApp]Post-roll assets NOT showing up REPLAY button for replay
  • CC that are outside of video duration are shown after the video is ended
  • [BasicPlaybackSampleApp][Airplay][Ooyala Ads] After playing mid roll
  • [DTOSampleApp]Download ProgressBar MISSING for last asset in iOS V11
  • [BasicPlaybackSampleApp][Airplay][VAST Ads] VAST Ads are not playing Appropriately during Airplay.
  • App is crashed if Device orientation Landscape Left and Right was unchecked
  • "Replay" button is misaligned after disabling "controlBar" in skin.json
  • SwiftSampleApp can't be built and run
  • [SSAI] multiple impressions on preroll ad
  • Ad is in Paused state instead of playing
  • [HA]Error Screen shows in between channel switch
  • Asset "PlayCompleted" but Slider element is not moved to the end of scrubber bar
  • [Airplay][AppleTV] After seek, in the Play/Pause button - "Play" is displayed instead of "Pause" and the button remains unresponsive to tap.
  • Share pop-up is not proper aligned.
  • Learn More and Ad duration is getting truncated in iPhoneX in full screen mode.
  • Sound icon bar is not visible on player when clicked on sound icon.
  • No "done" button on video player in portrait mode
  • OOOoyalaPlayer native controls doesn't display loading
  • Extra button "Learn more"
  • Application crashed in attempt to play any asset if playback speed list contains empty values
  • Playback speed is not "Normal" for the first second of SSAI ad when initial playback speed is not 1
  • Status bar overlaps white elements at the top of the screen
  • Concurrency is not restricted strictly from SAS for iOS related devices.We are tracking the issue here at AT-5404

Known Issues in this Release

New:

  • After playing midroll, video starts to play from the beginning instead of resuming from the midroll position

The following issues from previous releases still exist:

  • Cue points are displayed and Ads are played when the asset is replayed.
  • Postroll Ads freeze and then resume playback after the Ad’s original duration when the PlaybackSpeed rate is set to > 1x.
  • Assets cannot be replayed during Airplay.
  • Assets with Closed Captions with Fairplay DRM may have issues with seeking to the end of the video.
  • In this release, there is an intermittent issue with replaying assets when using Chromecast..
  • Syndication error (unauthorized location error) messages are not correctly displayed.
  • Resuming Fairplay assets from control center will not work when the app is in background.
  • HLS FPTS Assets with CC are NOT getting OFFLINE playback on iOS V10.3 devices
  • Mini-Controller for “MediaListView” screen is not displayed on REPLAY
  • Download still continues even after pausing/cancel it
  • 1080p and higher VR 360 assets are not playable on iOS 10

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:

New in this Release

  • 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}
  • Configuration option added to disable pause on app backgrounding

    A configuration option for the iOS SDK added to enable no pausing on backgrounding. This new configuration overrides the default behavior, which is the current pause on backgrounding behavior.

    With this new configuration enabled, pressing the HOME button will not pause the video/audio stream, but rather continue playing the audio in the background. The lock screen controls can then be used to control playback, as well as returning to the application.

    The background mode is enabled by using the following option in BasicSimplePlayerViewController (example can be found BasicPlaybackSampleApp) to send this value into iOS SDK

    options.backgroundMode = OOBackgroundPlaybackModeAllowed;

    To disable the feature use the following line (it is a default value)

    options.backgroundMode = OOBackgroundPlaybackModeDenied;
  • Move from Mirroring to Casting

    Before these changes the Ooyala iOS SDK mirrored when connecting via AirPlay. That implementation was changed to stream only to the connected screen.

  • Enable stream start tracking with GDPR tracking level is 'Disabled'

    Before these changes, the GDPR trackingLevel set to 'disabled' value resulted in no data being sent to IQ. However, since IQ was needed for billing customers on a per-stream usage basis, this value allowed customers to be under-billed.

    With these changes when the trackingLevel is set to 'disabled', IQ still receives and logs play request and play start events for the associated Asset ID. GDPR flag is now added to the IQ query AND on the Message Bus/Analytics Framework.

Fixed in this Release

  • Fixed an issue when it was impossible to pause Ad in IMA.
  • Fixed an issue when Play/Pause button state was not shown appropriately in PlayerView screen when tapped, after switching from MediaListView to PlayerView screen.
  • Fixed an issue when main content was not playing after pre-roll Ad if user disabled ShowPromoImage and Preload.
  • Fixed an issue when offset in DVR window was fluctuating.
  • Fixed an issue when Play/Pause button was showing in Pause mode.
  • Fixed an issue when Replay button was not shown instead of play/pause button after playback completed in IOS device during Airplay.
  • Fixed an issue when seek resumed Playback automatically after pause.
  • Fixed an issue when when Replay icon was not visible in landscape view.
  • Fixed an issue when user was not able to Pause/Play DASH DRM Live channel using the mini-controller in the cast menu pop-up.
  • Fixed an issue when Video was getting paused after completion of Preroll Ad if user disabled ShowPromoImage and Preload buttons.
  • Fixed an issue when player was Unresponsive for default assets after playing audio only asset first.
  • Fixed an issue when switch to next video caused the playback not start from the beginning.
  • Fixed an issue when Replay button was not shown but instead Play/Pause button were shown after finish Post-roll Ad.
  • Fixed an issue when marker was partly cut on selection when the marker position is close to the beginning/end of asset duration.

Known Issues in this Release

There are no new known issues in this release. The following issues from previous releases still exist:

  • Cue points are displayed and Ads are played when the asset is replayed.
  • Postroll Ads freeze and then resume playback after the Ad’s original duration when the PlaybackSpeed rate is set to > 1x.
  • Assets cannot be replayed during Airplay.
  • Assets with Closed Captions with Fairplay DRM may have issues with seeking to the end of the video.
  • In this release, there is an intermittent issue with replaying assets when using Chromecast..
  • In this release, there is an intermittent issue with replaying assets when using Chromecast.
  • Syndication error (unauthorized location error) messages are not correctly displayed.
  • Syndication error (unauthorized location error) messages are not correctly displayed.
  • Resuming Fairplay assets from control center will not work when the app is in background.
  • HLS FPTS Assets with CC are NOT getting OFFLINE playback on iOS V10.3 devices
  • Mini-Controller for “MediaListView” screen is not displayed on REPLAY
  • Download still continues even after pausing/cancel it
  • Post roll Ad is not playing after finish the video content.
  • IMA Podded Ads are not playing Appropriately during airplay
  • 1080p and higher VR 360 assets are not playable on iOS 10
  • ControlBar gets minimised and Player Buttons not working properly in VoiceOver mode
  • Only Audio gets played for Azure VR360 asset
  • Concurrency is not restricted strictly from SAS for iOS related devices.We are tracking the issue here at AT-5404.

4.45.0 Released 2019-05-08

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

  • 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/Timeline Markers

    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.
    • Markers can be associated with colors, images/icons and/or descriptive text inside a standardized UI container for the maker.
    • 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.
    Chapter Marker Sample Chapter Marker Sample Chapter Marker Samples

    For full information on how to implement Chapter/Timeline markers, pleases see our full guide.

  • Chromecast/Airplay buttons in Ooyala Skin SDK

    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.

    Chromecast Buttons Chromecast Buttons

    To enable this feature:

    1. Enable cast controls in skin.json. By default castControls in skin.json are disabled so it is necessary to turn the on them in skin.json:
      "castControls": {
                  "enabled":true,
                  ....
              }
              

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

    2. Add the following linked frameworks: googleCast framework and ooyalaCastSdk framework.
    3. Add googleCast.framework into embedded binaries.
  • Implement online/offline Analytics using native iOS functions

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

  • Scrolling Player View Support

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

    Requirements

    • iOS SDK installed

    Description

    The main idea is to use a single instance of Ooyala Player and reuse it when a cell is visible.

    OOSkinViewController is initialized only once, the parent collection layout adds OOSkinViewController once the next item of UICollectionView 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.
    • 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". 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.

    ViewControllers

    • MultiplePlayerViewController demonstrates how to use UICollectionView with several reusable instances of OoyalaPlayer

    Recommendation

    Set the OOOoyalaPlayerActionAtEnd as OOOoyalaPlayerActionAtEndReset.

  • Enable OpenMeasurement in Google IMA SDKs

    The Open Measurement SDK is an upcoming viewability and verification platform integrated into the iOS and Android IMA SDKs. It is jointly developed by the OM Working Group of the IAB, including: Google, DoubleVerify, IAS, Moat and others. The platform runs Javascript provided by any verification vendor conforming to the IAB VAST and OMID specs. These scripts are fed into the IMA SDK within an node in VAST 4.1, or in an in VAST pre-4.1. See the VAST 4.1 spec and communicate with your verification vendor for more details.

    Requirements

    The OMSDK 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.

  • Picture in Picture for Ooyala skin SDK

    In this version we addd Picture-in-picture feature into Ooyala skin. To enable it, please ensure that the version of OOyalaSDk and OOyalaSkinSDK is more than v4.45.0_RC5.

    1. Import AVKit -> AVPictureInPictureController into class that manages OOSkinViewController. It is a DefaultSkinPlayerViewController in our sample app.
      @import AVKit.AVPictureInPictureController;
    2. Ensure that device supports Pip-feature.
      BOOL isPipSupported = AVPictureInPictureController.isPictureInPictureSupported
    3. Ensure that current asset is NOT audio only
      BOOL isAudioOnlyAssetFlag = {//your custom logic for defining isAudioOnly}
    4. Define if player can use pip for your device and with your asset based 2.1 and 2.2
      BOOL canUsePip  = isPipSupported && !isAudioOnlyAssetFlag
    5. If canUsePip is true create an instance of OOOptions and set the value of the enablePictureInPictureSupport property to true.
      OOOptions *options = [OOOptions new];
              options.enablePictureInPictureSupport = YES;
              
    6. When creating OOOoyalaPlayer, use -initWithPcode:domain:options: and pass the OOOptions instance (from point 5 above) into this method. Ensure that you don't use -initWithPcode:domain: method.
  • Disconnect a Chromecast Device

    Expose the currently private method for Disconnecting the Chromecast device in the iOS SDK, and update it to the latest version of the Cast SDK. Now OOCastManager has a public method:

    - (void)disconnectFromCurrentDevice;

    In order to check the functionality it should be called from anywhere in the code, for example: add an action on button click (replace lines 64-65 with following in PlayerViewController.m):

    UIBarButtonItem *rightbutton = [[UIBarButtonItem alloc] initWithCustomView:[self.castManager castButton]];
            UIBarButtonItem *disconnectButton = [[UIBarButtonItem alloc] initWithTitle:@"Disconnect"
              style:UIBarButtonItemStyleDone
              Target:self
              action:@selector(disconnect)];
            self.navigationBar.rightBarButtonItems = @[disconnectButton, rightbutton];
            

    Right after viewDidLoad method (it will be line 98) add the following

    - (void)disconnect {
              [self.castManager disconnectFromCurrentDevice];
            }
            

Fixed in this Release

  • Fixed an issue sample apps could not be built.
  • Fixed an issue where Player Controls size reduced and not appropriate.
  • Fixed an issue where, For IMA/Freewheel assets, the Ooyala Player displays an error message for a few seconds before loading the asset.

Known Issues in this Release

  • Unable to pause Ad in IMA in IMA sample app.
  • Chapter Marker is partly cut on selection when the marker position is close to the beginning/end of asset duration.
  • Cue points are displayed and Ads are played when the asset is replayed.
  • Postroll Ads freeze and then resume playback after the Ad’s original duration when the PlaybackSpeed rate is set to > 1x.
  • Assets cannot be replayed during Airplay.
  • When using Chromecast, Play/Pause UI state may not synchronize button state properly in PlayerView screen when tapped, after switching from MediaListView to PlayerView screen.
  • Replay icon is not available with VR 360 videos in landscape mode.
  • Users are unable to Pause/Play DASH DRM Live Channel using the Mini-Controller in the Cast menu pop-up.
  • Assets with Closed Captions with Fairplay DRM may have issues with seeking to the end of the video.
  • For IMA/Freewheel assets, the Ooyala Player displays an error message for a few seconds before loading the asset.
  • In this release, there is an intermittent issue with replaying assets when using Chromecast.
  • Syndication error (unauthorized location error) messages are not correctly displayed.

4.44.0 Released 2019-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:

New in this Release

  • Native Picture-in-Picture Support (iPADs)

    In this release, we have added support for native iOS Picture-in-Picture (PiP) mode for iPADs. You can invoke this mode using the Default (Native) skin option.

    Note: This native iOS capability is currently only available on iPAD-type devices. We are planning to add Picture-in-Picture mode support for the Ooyala Skin SDK in a future release.

    If you follow the standard approach when working with Ooyala Player, you would create an instance of OOOoyalaPlayer and then utilize it to create a OOOoyalaPlayerViewController. You can then either push OOOoyalaPlayerViewController onto a current custom viewController, or add it as child controller.

    Note: Make sure you are using Ooyala SDK version 4.44.0_RC2 or higher.

    To enable the PiP functionality, perform the following steps to update the methods where the OOOoyalaPlayer is created:

    1. Create an instance of OOOptions and set the value of the enablePictureInPictureSupport property to true.
    2. Create an instance of either OODefaultPlayerInfo or OODefaultAudioOnlyPlayerInfo (this depends on your asset type - see the sample code snippets below) and set it to property playerInfo in the same OOOptions instance described in the previous point.
      Note: The PiP functionality is not supported yet for Audio-Only assets.
    3. When creating OOOoyalaPlayer, use -initWithPcode:domain:options: and pass the OOOptions instance (from point 1 above) into the initializator method.
      Note: The old way to configure this was with initWithPcode:domain:.
    4. Ensure that an appropriate initializator method is used when you create PlayerSelectionOption for audio assets in your list of assets. To do so, utilize -initWithTitle:embedCode:pcode:domain:viewController:isAudioOnly:.

    Sample code snippets:

    // This part of the example relates to point #1 above
            OOOptions *options = [OOOptions new];
            options.enablePictureInPictureSupport = YES;
    // This part of the example relates to point #2 above
            if (self.isAudioOnlyAsset) {
              options.playerInfo = [OODefaultAudioOnlyPlayerInfo new];
            } else {
              options.playerInfo = [OODefaultPlayerInfo new];
              }
    // This part of the example relates to point #3 above
            // Create Ooyala ViewController
            OOOoyalaPlayer *player = [[OOOoyalaPlayer alloc]
            initWithPcode:self.pcode domain:[[OOPlayerDomain alloc]
            initWithString:self.playerDomain] options:options];
    self.ooyalaPlayerViewController = [[OOOoyalaPlayerViewController
            alloc] initWithPlayer:player];
    Note: The AVPictureInPictureController class is very restricted and it is not possible to add custom events or custom controls on view with mini-player for it. All controls are derived from the mini-player view and provided by iOS - no customizations are possible.

Fixed in this Release

  • Fixed an issue where Pre-roll Ads could not be played when the pre-roll Ad URL was overridden in the IMASampleApp sample app.
  • Fixed an issue where, for assets that had FairPlay DRM and were downloaded with Closed Captions, download might reach 100% but might still not be complete.
  • Fixed an issue where the ControlsLockScreenSampleApp crashed when the default settings were used.

Known Issues in this Release

  • It is not possible to pause an Ad after the control bar is removed in the Player when the Ad is played in IMA.
  • The Replay button can only be used if the user moves out of Picture-in-Picture (PiP) mode first.
  • Pre-roll ads are supported. Mid-roll or post-roll ads are not supported.
  • When ShowPromoImage and Preload are disabled after playing a pre-roll Ad, the main content will not start to play play automatically. To start playback, the user must press the Start button.
  • Cue points are displayed and Ads are played when the asset is replayed.
  • Postroll Ads freeze and then resume playback after the Ad’s original duration when the PlaybackSpeed rate is set to > 1x.
  • Assets cannot be replayed during Airplay.
  • When using Chromecast, Play/Pause UI state may not synchronize button state properly in PlayerView screen when tapped, after switching from MediaListView to PlayerView screen.
  • Replay icon is not available with VR 360 videos in landscape mode.
  • Users are unable to Pause/Play DASH DRM Live Channel using the Mini-Controller in the Cast menu pop-up.
  • Assets with Closed Captions with Fairplay DRM may have issues with seeking to the end of the video.
  • For IMA/Freewheel assets, the Ooyala Player displays an error message for a few seconds before loading the asset.
  • In this release, there is an intermittent issue with replaying assets when using Chromecast.
  • Currently, with both Native SDK and Skin SDK, a Play button is shown on the screen instead of a Replay button after the video playback ends.
  • Syndication error (unauthorized location error) messages are not correctly displayed.

4.43.0 Released 2019-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:

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.

Fixed in this Release

  • Fixed an issue where the Replay icon was displayed while seeking back after the video had ended.
  • Fixed an issue with the TVoS SDK where the default loading (buffering) animation would not be shown during scrubbing forward/back.
  • Fixed an issue with Ooyala SSAI where a postroll Ad would be played without Ad controls under certain conditions.
  • Fixed an issue where the subtitle text would be shifted to the left-hand side of the screen instead of the center with VR 360 asset types.
  • Fixed an issue with the VAST plugin that could cause VAST mid-roll and post-roll Ads to not play.
  • Fixed an issue where FairPlay DRM-type HLS streams could not be downloaded.
  • Fixed an issue with Audio-Only asset playback where the Player app crashed when the user would go to the asset list during playback and would quickly re-select the same asset to be played again.
  • Fixed an issue with Chromecast where, after disconnecting from the Chromecast receiver, audio playback would continue on the Chromecast sender device and the Player app would crash when/if connecting back to the receiver.
  • Fixed an issue where a video or mixed asset would be played without the video portion if an Audio-Only asset was played first.
  • Fixed an issue with Chromecast where Azure Transcoded eHLS V4 assets could not be played on the Chromecast sender and receiver devices when the Ooyala ChromecastSampleApp was used.
  • Fixed an issue where VAST Ads were played twice instead of once.

Known Issues in this Release

  • Cue points are displayed and Ads are played when the asset is replayed.
  • Postroll Ads freeze and then resume playback after the Ad’s original duration when the PlaybackSpeed rate is set to > 1x.
  • Assets cannot be replayed during Airplay.
  • When using Chromecast, Play/Pause UI state may not synchronize button state properly in PlayerView screen when tapped, after switching from MediaListView to PlayerView screen.
  • For assets that have FairPlay DRM and are downloaded with Closed Captions, download may reach 100% but may still not be complete.
  • Replay icon is not available with VR 360 videos in landscape mode.
  • Users are unable to Pause/Play DASH DRM Live Channel using the Mini-Controller in the Cast menu pop-up.
  • Assets with Closed Captions with Fairplay DRM may have issues with seeking to the end of the video.
  • There is currently an issue with the way the asset duration is shown on the Player’s Control Panel when the asset duration is longer than 1 hour - in such cases the start and end times would be offset by an hour.
  • For IMA/Freewheel assets, the Ooyala Player displays an error message for a few seconds before loading the asset.
  • In this release, there is an intermittent issue with replaying assets when using Chromecast.
  • When playing SSAI Ads, the Ad playing and Learn more links are not hidden after the Ad playback ends.
  • Currently, with both Native SDK and Skin SDK, a Play button is shown on the screen instead of a Replay button after the video playback ends.
  • The ControlsLockScreenSampleApp crashes when the default settings are used.
  • Syndication error (unauthorized location error) messages are not correctly displayed.

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:

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 applications on the following links, and refer to the configuration notes below:

    • BasicPlaybackSampleApp - available here: BasicPlaybackSampleApp.

      Note: Developers must either reuse the existing class OODefaultAudioOnlyPlayerInfo or implement a custom class conforming to the PlayerInfo protocol.
    • OoyalaSkinSampleApp - available here: OoyalaSkinSampleApp.

      Note: In this sample app, a separate controller is used - AudioOnlySkinPlayerViewController. However, the implementation logic is the same as for the basic sample app above.

    For both sample apps, setDefaultPlayerInfo must be configured before the embed code is assigned - for example:

    [OOStreamPlayer setDefaultPlayerInfo:[OODefaultAudioOnlyPlayerInfo new]];
    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.
  • Support for Multiple Ads with Google IMA (non-Ad Rules Type)

    In this release we have added support for multiple (podded) ads when these are configured in Backlot. As a result, for assets with multiple IMA ads coming from metadata response JSONs, all the multiple ads for an asset will be displayed. This functionality has been added to our IMASampleApp.

  • New TvOS SDK Sample App Using Swift

    In this release we have added a new sample app for the TvOS mobile SDK, which uses Swift.

    The sample app can be found here: TVOSSwiftSampleApp.

Fixed in this Release

  • 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 some cosmetic issues observed when pausing podded midroll ads using Google Ad Manager.
  • Fixed an issue related to pausing DASH Live streams when casting using Chromecast.
  • Fixed an issue with podded ads when using Google Ad Manager (Ad-Rules type) where the the beginning of the next podded ad would pause the Player.

Known Issues in this Release

General Issues

  • Replay icon is not available with VR 360 videos in landscape mode.
  • When using Chromecast, Play/Pause UI state may not synchronize button state properly in PlayerView screen when tapped, after switching from MediaListView to PlayerView screen.
  • Mini-Controller for MediaListView screen is not displayed when the asset is replayed.
  • Users are unable to Pause/Play DASH DRM Live Channel using the Mini-Controller in the Cast menu pop-up.
  • VAST Ads are played twice instead of once.
  • In this release, there is an intermittent issue with replaying assets when using Chromecast.

Downloaded/Offline Playback Issues

  • Download may still continue even after the download is programmatically stopped.
  • Assets with Closed Captions with Fairplay DRM may have issues with seeking to the end of the video.
  • For assets that have FairPlay DRM and are downloaded with Closed Captions, download may reach 100% but may still not be complete.
  • Currently DRM assets do not support the DTO functionality so FPTS assets cannot be downloaded.

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:

New in this Release

  • Support for audio playback from another application when Player audio is muted

    In this release, we introduce the option to allow audio playback from another application to continue when the video player is muted.

    To this end, we have implemented the new OOAudioSession class as a singleton. It is a wrapper around AVAudioSession, which handles prioritization. This class also enables you to easily subscribe to notifications about volume changes.

    If you have a custom skin fullscreen implementation, you can use one of the following settings:

    • OOAudioSession::prioritize()
    • OOAudioSession::deprioritize()

    If you do not have a custom skin fullscreen implementation, the behaviour will be as follows.

    If OOyalaPlayer is muted and audio from another app is being played during video playback, OOyalaPlayer will continue to play the video with the original audio muted and with audio playback from another app. At this point, the audio playback from the other app will be muted and the original audio playback will be played if one of the following actions is taken:

    • The user increases or changes the volume while OOyalaPlayer is open.
    • The user enters into fullscreen mode while OOyalaPlayer is open.
  • Support for multiple ads when configured in Backlot

    In this release, we have introduced support for multiple ads when these are configured in Backlot.

    We have implemented logic to display pre-rolls, mid-rolls, and post-rolls with no ad-rules. As a result we now support multiple IMA ads, which can be podded ads, no ad-rules, or ad rules.

    Note: In this release, mid-roll, and post-roll ads with no ad-rules do not get paused. This limitation will be addressed in a future release.
  • Support for closed captions for offline asset playback

    In this release, we have introduced support for Closed Captions for assets when these are played offline.

    Note: This feature is currently only supported for iOS 11+ devices.

Fixed in this Release

  • Fixed an issue where, with the TVoS SDK, the progress bar would not update until after content was buffered. Now the progress bar will immediately update based on the position set by the remote.
  • Fixed an issue where opening the menu to change languages would pause the video. We have addressed this problem by changing the behavior for the multi-audio menu (using Skin SDK).
  • Fixed an issue where seeking to the end of the video when using AirPlay would not resume playback at the seek point.
  • Fixed a cosmetic issue with the control bar related to toggling between monoscopic and stereoscopic mode with VR 360 videos.
  • Fixed an issue with the Chromecast Sender where playback on the Chromecast Receiver would continue even after disconnecting the device.
  • Fixed an issue with Accessibility mode where the audible instructions for how to navigate the progress bar were incorrect.
  • Fixed an issue where post-roll ads would not play after video content playback ended when using AirPlay.

Known Issues in this Release

  • When playing a video offline that has Closed Captions, seeking to the end of the video may cause the player to get stuck at the end of the video.
  • There is currently an issue with using podded ads with Google Ad Manager combined with AirPlay.
  • 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 the InitialTime setting did not work for Live assets with OSP.
  • Resolved an issue where Chromecast did not work on iOS v12 - the cast icon was not shown and the video was not cast.
  • 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 the Player displayed Set instead of Done in the top left corner of the screen after the user clicked the fullscreen icon and a Closed Captions language was selected for the played asset.
  • Resolved an issue where the Cast button was displayed even after the wifi connection was disconnected.
  • Resolved an issue where, when the video playback was almost complete, the Player reported an intermittent PAUSE state before reporting a STOP state.
  • Resolved an issue where Hidden Audio/Subtitles headers were selected by VoiceOver in the Closed Captions menu when VoiceOver was from the Accessibility settings of the device.
  • Resolved an issue where the main video scrubber bar was showing during Ad playback.
  • Resolved an issue where the Pre-Roll cuepoint was still showing after Mid-Roll Ad playback ended.
  • Resolved an issue where, on IMA, a Mid-Roll Ad would not be played during asset playback, and the Player would start flickering. In addition, pausing and resuming the playback caused both the Ad and the main asset to be played together.
  • Resolved an issue where the Learn more button did not work for SSAI DFP.

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 playerInfo in Player

    We have added new functionality that enables you to set playerInfo through OOOptions. To do so, set a new instance to the OOOptions object using the new playerInfo property, and make sure the OOOptions are passed to OOOoyalaPlayer.

    See the Ooyala Mobile SDK for iOS documentation for more information about the playerInfo property.

  • 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 (void) setAdditionalInitParams:(NSDictionary *) params method.

    See the Ooyala Mobile SDK for iOS documentation for more information about the playerInfo property.

Fixed in this Release

  • Resolved an issue on iOS 10 devices where attempting to seek back to the very beginning of the video did not work and the content kept playing from the current position.
  • Resolved an issue with Ooyala Server-Side Ad Insertion (SSAI) where the scrubber bar and the timer sometimes continued to progress when the ad was paused.
  • Resolved an issue where Azure Transcoded HLS and eHLS assets did not play on the sender app on the device.

Known Issues in this Release

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

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

    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 HLS.
  • 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 Player provides three setting levels for tracking metrics: Default, Disabled, and Anonymous, 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. Analytics will be enabled and will send data to the analytics servers. The device GUID will stay the same until the app is present on the phone. The device GUID will be stored in local storage.
    • Disabled: For this setting, analytics will be COMPLETELY DISABLED and no data will be sent to the analytics servers. In this case all video analytics (media play events) will not be reported for users, so products like IQ will under-report actual usage.

      Usage example:

      [OOOoyalaPlayer setIqAnalyticsTrackingState:OOIQAnalyticsTrackingStateAnonymous]; 
      Note: Call this before creating an instance of OOOoyalaPlayer. It is a class method so it can be called without an instance.
    • Anonymous: For this setting, analytics data will be sent to the analytics servers. Each time a video is played, a new device GUID will be generated. The device GUID will NOT be stored on the device.
  • Option to configure external screen or mirroring when using HDMI cable.

    On a player ViewController, enable the following:

    OoyalaPlayer.usesExternalPlaybackWhileExternalScreenIsActive
            ooyalaPlayer.usesExternalPlaybackWhileExternalScreenIsActive = YES; // YES is true in Objective-C

Fixed in this Release

  • Resolved an issue where a Closed Captions button was shown in Player when the asset does not contains any Closed Captions.
  • Resolved an issue where translations for some of the strings were missed for Japanese, Korean and Chinese.
  • Resolved an issue where the video being played was not set to full screen mode when a screen was rotated to landscape orientation.
  • Resolved an issue where video controls were showing as transparent after the video was paused for the first time.

Known Issues in this Release

  • Multi-Audio tracks with HLS with FairPlay DRM are not supported in this release.

Important Notes for this Release

Accessibility support is only implemented in the Ooyala Skin SDK.

4.37.0 Released 2018-07-18

This release is a maintenance release - no new features were introduced in this release.

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

Fixed in this Release

  • Fixed some UI issues specific to the iPhone X screen when using the Ooyala Skin SDK.
  • Fixed an issue that caused an incompatibility for mid-stream checks (intervaled) on geo-restrictions on iOS9 devices.
  • Fixed an issue relating to casting DASH + DRM streams on Chromecast with an iOS Device.
  • Fixed an sync issue when two devices would be connected to the same Chromecast receiver and playing a video.
  • Fixed an issue with Google IMA where clicking on Learn More and returning to the video would cause the player UI state to be inaccurate.

Known Issues in this Release

General

  • When the wifi connection is intermittent during downloads of Fairplay DRM assets, the Download Status bar switches between ON and OFF states depending on the connection.
  • Only Ooyala Skin supports accessibility, not native skin.
  • Player is using bitmovin plugin even when main plugin is mentioned ahead of it in debug page.

Chromecast

  • eHLS is not supported with Chromecast (applies for Azure transcoded eHLS version 3).
  • 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.

Important Notes for this Release

  • Due to a hardware limitation by Apple, 1080 VR is not supported on iPhone 6s and below. As a result, resolution 1080 V360 assets cannot be played on iOS 10.

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

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

Compatibilities with this Release

This release was tested for compatibility with the following integrations:

New Features

  • Redefined all Objective-C enums to use the NS_ENUM macro. If you use Swift, you must use the dot syntax for enums, e.g. OOOoyalaPlayerState.playing. Previously in Swift, the syntax was OOOoyalaPlayerStatePlaying.

Resolved Issues

  • Updated the error text for Device Limit Exceeded to be more informative and actionable to end-users.
  • Fixed an issue where HLS + Fairplay would not load on Apple TV via AirPlay.
  • Fixed an issue where after casting to Chromecast, after a suspend state or minicontroller vent, the play button sometimes became unresponsive.
  • Fixed an issue where the multi-audio menu would appear even though the video only constrained one language track.
  • Fixed an issue that may cause the app to freeze when tapping on the trackpad for a Closed Caption asset.

Known Issues *

General

  • When the viewer clicks the Learn More link, then returns to the ad, the Player pauses instead of continuing to play the main content.
  • In AirPlay mode, changing the closed captions locally on the device is not reflected on AppleTV. The user must currently set Closed Captions on AppleTV’s Closed Captions.
  • The Live button is currently not displayed on the control bar during playback of live assets in portrait mode only.
  • With programmatic screenshot support and VR 360 content, the whole video 360 frame is captured instead of the visible part for a screenshot.
  • Airplay might fail for a Fairplay asset that has closed captions enabled. This issue happens only when "Closed Captions" is enabled in the Apple TV. When its disabled, Airplay is successful.
  • Playback may be Paused after returning from ‘Learn More’ action on the IMA Ad.
  • Play icon may be displayed instead of Pause after returning from ‘Learn More’ action on the IMA Ad.
  • The live stream cannot be played using Ooyala 4.36.0 Mobile SDK since the latest app release. This is not currently supported for iOS9. **

Chromecast

  • The asset description is not in sync on sender screens, when two devices cast at the same time with two different assets.
  • Casting Live DASH + DRM from an iOS device may disable pause when casting.

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.
  • Google IMA libraries have been updated to version 3.6.1 for the Core SDK.
  • 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. Enable the HEVCEnabled property in OOOptions to enable HEVC in the player . For more on Ooyala’s support for HEVC, please see our HEVC Guide.
Resolved Issues
  • Resolved an issue that prevented closing subtitles selection UI for iPhone X in full-screen mode.
  • Resolved an issue that caused Scrubber bar and Play icon misalignment in the next video.
Known Issues
  • The Live button is currently not displayed on the control bar during playback of live assets in portrait mode only.
  • With programmatic screenshot support and VR 360 content, the whole video 360 frame is captured instead of the visible part for a screenshot.
  • Airplay might fail for a Fairplay asset that has closed captions enabled. This issue happens only when "Closed Captions" is enabled in the Apple TV. When its disabled, Airplay is successful.
  • Playback may be Paused after returning from ‘Learn More’ action on the IMA Ad.
  • Play icon may be displayed instead of Pause after returning from ‘Learn More’ action on the IMA Ad.

SDK Documentation: Ooyala Mobile SDK for iOS 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 the Ooyala SKIN SDKs.
Resolved Issues
  • Fixed an issue that may cause Chromecast to automatically disconnect after 10 minutes.
    Note: This issue was fixed on the Receiver application. The fix is automatic for customers using the Ooyala v4 Receiver application.
Known Issues
  • The Live button is currently not displayed on the control bar during playback of live assets in portrait mode only.
  • With programmatic screenshot support and VR 360 content, the whole video 360 frame is captured instead of the visible part for a screenshot

SDK Documentation: Ooyala Mobile SDK for iOS 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.

Resolved Issues

The following issues have been fixed.

  • For the Chromecast Playback solution, the following issues have been resolved:
    • Play/pause transition was very slow. This issue has now been resolved.
    • The mini-controller did not disappear after Stop Casting was clicked.
    • Change of volume was not persistent across videos, or when the same video was re-opened from the mini-controller.
  • The playhead would sometimes flicker while seeking into live assets. This issue has now been resolved.
  • Fixed an issue causing video to not go in full screen mode when the device is rotated to landscape mode.

Known Issues

  • The Live button is currently not displayed on the control bar during playback of live assets in portrait mode only.
  • With programmatic screenshot support and VR 360 content, the whole video 360 frame is captured instead of the visible part for a screenshot
  • Chromecast may get disconnected automatically after 10 minutes of playback.

SDK Documentation: Ooyala Mobile SDK for iOS documentation

4.33.0 Released 2018-03-07

This release introduces new functionality and fixes previous issues.

New Features

  • For download-to-own (DTO) requests with HLS clear assets, users can now select from a list of available bitrates before downloading. Note that this works with Elemental and Akamai transcoding but currently not with Azure transcoding.
  • Added a new method to OOOoyalaPlayer called screenshot (see https://docs.brightcove.com/apidocs-ooyala/ios_mobilesdk/interface_o_o_ooyala_player.html) that will build and return 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 UIViewControllers. This feature is currently not supported with VR 360-type videos.
  • Added support for the WebVTT closed caption format (in addition to continued support for DFXP/TTML). See Ingesting Closed Caption Files.

Resolved Issues

  • We now properly position the volume slider element shown in the SkinSDK UI when playing a VR video.
  • We now send the playerLoad event to IQ Analytics.
  • You can now seek in the DVR window of live assets.

Known Issues

  • When playing a live asset, if the user seeks, the playhead position marker may flicker before settling in at the position to which it was seeked.

SDK Documentation: Ooyala Mobile SDK for iOS documentation

4.32.0 Released 2018-02-05

This release introduces new functionality and fixes previous issues.

New Features

Resolved Issues

  • Fixed an issue that caused OoyalaPlayerSkinViewController.setFullScreen not to go into Full Screen mode.
  • For tvOS, fixed an issue in which clicking on the track pad did not pause the video.
  • Fixed an issue in which clicking on the Play/Pause button in a specific sequence would cause the player to be unresponsive.

SDK Documentation: Ooyala Mobile SDK for iOS documentation

4.31.1 Released 2018-01-17

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

Resolved Issues

  • Fixed an issue that caused some video formats to fail to play on iPhone 8 and iPhone X.
  • Fixed an issue that caused video viewer to rotate to landscape mode after clicking on full screen button.

SDK Documentation: Ooyala Mobile SDK for iOS 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.
    • We added three new sample apps in the ios-sample-apps repository: VRSampleApp, VRTVSampleApp, and SwiftVRSkinSampleApp. These sample apps are built to help show how to implement VR 360 video playback, with both Swift and ObjC types.
    • To support VR, you will need to add the OoyalaVRSDK.framework in your app. You should not add the OoyalaSDK.framework if you want to add VR support.
    • Download Ooyala VR 360 SDK for iOS.
  • For video content that has ID3 tags, Ooyala now exposes all the ID3 tag information through the OOOoyalaPlayerJsonReceivedNotification notification of the OoyalaPlayer (see the reference doc). The object we send in the notification is an instance of Apple's AVMetadataItem.

Resolved Issues

  • Fixed an issue in the OoyalaSDK default UI. When opening the Closed Captions panel, the Set/Close button of this panel was hard to tap on iPhone X devices.
  • Fixed an issue in which an application would hang if the viewer quickly manipulated the volume bar from the controls UI of the player.
  • Using the default UI of the OoyalaSDK, fixed an issue that was not showing the Airplay options in iPad devices.

Known Issues

  • Using the default UI of the OoyalaSDK, when tapping on the fullscreen button, the viewer's device will be automatically oriented to landscape mode if they are using an iPhone.
  • For stereoscopic view, closed captions can be turned on and will not be readable if the viewer is using a head-mounted display.

SDK Documentation: Ooyala Mobile SDK for iOS documentation

4.30.0 Released 2017-12-01

New Features

  • Refactored the default UI controls bundled in the OoyalaSDK.framework to address issues created by iOS 11. This addresses many player control layout issues seen on iOS 11, including aspects unique to the iPhone X screen.
  • This release adds support for High Availability for Live Streams.
  • When using the download option (for offline playback) you now have the option to disable cellular access to restrict downloading assets using WiFi only, including when the app is in the background. The property is called allowsCellularAccess, see how to activate it here: OOAssetDownloadOptions Class Reference.

Resolved Issues

Known Issues

  • When integrating the PulseSDK and OoyalaSkinSDK, the Up Next panel might appear for less than a second on the first frames of video playback if you have Discovery active.
  • The SET button for closed captions options is not easily clickable.
  • Airplay status fluctuates after the viewer clicks on the Airplay button in full screen.
  • Using the OoyalaSkinSDK.framework, the Share panel may have alignment issues on iPad-type devices.
  • For both main content and IMA ads, the zoom in/zoom out buttons are not available in Full-Screen landscape orientation using the default UI bundled in the OoyalaSDK.framework.
  • In the AdvancedSampleApp of our sample apps repository (ref: https://github.com/ooyala/android-sample-apps/) when playing an asset with an ad, if the user is loading an ad and goes out of the video player view, they may continue to hear audio for a few seconds.
  • Using the default skin, on iPad devices on iOS 10- devices, rotating the device to full screen, and maximizing the volume may freeze the video.
  • Chromecast with the iOS sender may not interact with the receiver app properly to start videos.

SDK Documentation: Ooyala Mobile SDK for iOS documentation

4.29.0 Released 2017-11-16

Important: Important: Due to the deprecation of a crucial mechanism used in the default skin of the Ooyala iOS SDK, the layout of components needs to be refactored for iOS 11 devices. Improvements were made in this release, but there are remaining usability issues with this skin option. We will be refactoring this skin completely in our next major release. If you are using the Skin SDK or creating a completely custom skin, this note does not apply.

New Features and Enhancements

  • In our Ooyala TV SDK, we added a Closed Caption UI panel to select Closed Caption languages available for the loaded asset. The assets should be uploaded in our backend, for example through Backlot, for them to work.
  • Updated a method in the iOS7ScrubberSliderFraming class. It is now called calculateScrubberSliderFramewithButtons:baseWidth:fullscreen. Be sure to update it if you are using it.

Resolved Issues

  • Fixed various issues relating to closed captions on iOS 11, including when some special characters were not being rendered.
  • Fixed an issue that was locking the player orientation after exiting fullscreen mode.
  • Moved most of our heartbeat logic that checks for concurrent streams to the server side, removing dependency on local device clock time.

Known Issues

  • If you use the No-Skin SDK (see above note), there are some known issues for iPhone elements in iOS 11. For example, some native player controls may not displaying for iPhone X after you rotate the screen. Improvements were made in this release, but there are remaining usability issues with this skin option. We will be refactoring this skin completely in our next major release. In addition, on iOS 11 while playing in fullscreen mode, the native volume control might not be visible. If the viewer clicks the screen or rotates the screen to portrait, the native volume control might still not appear or the control bar might have a different width.
  • The playerLoad event for Ooyala IQ is not sent in some cases.
  • There are some known issues for Pulse Ads:
    • The skip button count down timer is getting truncated.
    • Ads may get get stuck after the viewer clicks on the Skip Ad button.
    • With ads using the Pulse ad plugin, the voice over selector is not moving forward by the right swap.

SDK Documentation: Ooyala Mobile SDK for iOS documentation

4.28.2 Released 2017-10-04

New Features and Enhancements

  • You can now customize the DeviceInfo for IQ Analytics.
  • You can now add Azure dynamic filters with the authorization request through OOOptions.
  • The PulseIntegration plugin has been updated with PulseSDK v2.5.17.20.0.

Resolved Issues

  • Fixed an issue in which which some VAST ads did not play if the VAST URL contained special characters.
  • Fixed an issue in which the play button would appear while an ad was playing when the Accessibility screen reader was enabled.
  • Fixed issues where downloading multiple videos on iOS that were encrypted with FairPlay DRM would cause only the last video downloaded to be playable.

Known Issues

  • The DTOSampleApp may crash if the user starts to download an asset and forces the app to close during the download. After this sequence, restarting download of the same asset will cause an application crash.

SDK Documentation: Ooyala Mobile SDK for iOS documentation

4.28.1 Released 2017-09-18

Resolved Issues

  • When VoiceOver is active, after ads playback, the viewer could not seek with the scrubber bar from the pause screen.

Known Issues

  • When VoiceOver is active, after seeking, the scrubber pointer moves forward and backward.
  • After seeking, VoiceOver says the wrong percentage.
  • When a Google IMA asset is playing and the viewer clicks through it, the ad is paused and does not resume automatically. While VoiceOver is enabled, the viewer needs to focus the ad countdown timer and double tap it to resume playback.

SDK Documentation: Ooyala Mobile SDK for iOS documentation

4.28.0 Released 2017-09-14

New Features and Enhancements

  • Expanded compatibility of the Player controls using VoiceOver mode (Accessibility), particularly for Scrubber Bar navigation.
  • Introduced logging of Ad playback events used for ad tracking. Events include ad quartile played, along with pause, resume, skipped, and clicked (By clicking learn more). Added delegates in the IMAOoyalaSDK to let users know about the state and events coming from IMA when an ad is playing.
  • Added methods to pause and resume a video download in progress for offline mode (DTO).

Resolved Issues

  • With VoiceOver enabled, swipe navigation of UI controls had moved beyond player controls.
  • The Scrubber bar was not accessible while VoiceOver was enabled.
  • The iOS play/resume icon disappeared while VoiceOver was enabled. Hid the play/pause icon when Voice Over is enabled so that the viewer can toggle playback by double tapping on the video view.
  • Using the UI controls of the OoyalaSDK only, the controls stayed hidden if the viewer pressed the volume buttons of the device to change the volume.

Known Issues

  • When a Google IMA asset is playing and the viewer clicks through it, the ad is paused and does not resume automatically. While Voice Over is enabled, the viewer needs to focus the ad countdown timer and double tap it to resume playback.

Updated SDK Documentation: Ooyala Mobile SDK for iOS documentation

4.27.0 Released 2017-08-15

New Features and Enhancements

  • The player now works when Accessibility is enabled in the device. The current working UI elements include the following buttons: Play/Pause/Replay, Full Screen, and More Options.
    Note: When Accessibility is enabled, the user needs to touch the screen in order for the player controls to be surfaced, which then enables voiceover controls to read out the control options.
  • This version of the iOS SDK incorporates the Pulse SDK v2.4.17.14.0.
  • The player will send notifications when a user toggles airplay mode.

Resolved Issues

  • When enabling closed captions using the Skin SDK, if the text is too long, it now wraps to the next line.
  • On the closed captions screen, the preview will now render the preview text in the correct language if that language is provided as a localized option to the Skin SDK.

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 can still change the volume using the device volume buttons.
    • The user cannot play or pause video ads in Accessiblity mode.
    • Share functionality currently does not work with Accessibility mode enabled.
  • Ad position, when specified as % of total video duration, is not supported in the iOS SDK.

4.26.0 Released 2017-07-03

New Features and Enhancements

Resolved Issues

  • OoyalaPlayer: Fixed an issue in which the setUnbundledVideo method was autoplaying videos without being explicitly asked to.
  • Ooyala IQ Analytics: Fixed an issue in which OOIQAnalyticsPlugin would retrieve analytics.js from a remote location, and then attempt to use analytics.js subesquently (when the player is no longer available), which would crash the application.

Known Issues

  • OoyalaSkinSample app. When enabling QA mode on the app and enabling CC in a video, the application may crash.

4.25.1 Released 2017-06-04

Resolved Issues

  • An issue in our Pulse SDK plugin is fixed, in which an ad impression was being triggered when the ad could not be played.

4.25.0 Released 2017-05-24

New Features and Enhancements

  • Google IMA libraries have been updated to version 3.5.1 for the Core SDK.
  • 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).
  • An issue has been fixed that made the build process fail for PulseSampleApp and TVOSSampleApp.
  • iOS Skin SDK now includes Japanese language support in skin.json.

4.24.0 Released 2017-03-28

New Features and Enhancements

  • PCODE and EMBED values are sent to the Pulse backend to enable joint reporting of VideoTech and AdTech data.
  • The default volume for any video renderer should always be 1.

  • 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.
    • Updated to React Native version 0.35.0.
    • Added a fullscreen property to OOSkinViewController, allowing you to programmtically enable or disable fullscreen mode.

Resolved Issues

  • The pipDelegate property has been changed to a weak reference to avoid possible circular references that could lead to memory leaks.
Known Issues
  • XDR (cross-device resume) is not supported in this version.

4.23.0 Released 2017-02-28

New Features and Enhancements

  • Added error codes to the OOOoyalaErrorCode that were in Android but not iOS.
  • Updated SDK to download analytics.js from the web server.
  • Added new configurations to OOIQConfiguration, which allows for customization of analytics source, domain, and endpoint.
  • Implemented support of IQ Domain/Traffic Source support. This does not require any customization, and will by default use the Domain used in the OoyalaPlayer implementation.
  • Added beta APIs to discover and select different audio tracks. See the API documentation for OOOoyalaPlayer for more detail on these APIs.
    Sample app updates:
    • Fixed an issue that was blocking PulseSampleApp from running.
  • Ooyala Skin SDK updates:
    • Added support for AccentColor in skin.json, which changes the color of several 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.
    • Fixed error message handling to ensure the UI displays the correct error based on the failure.
    • Fixed error handling localization for some errors based on what is in the skin-config language files.
    • Fixed a memory leak with the SkinviewController.
    • Support controlBar.volumeControl.color on iOS to change volume tintColor.

Resolved Issues

  • Fix a memory leak within the OoyalaPlayer.

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.
  • Sample app updates:
    • Additional samples have been incorporated into the AdvancedPlaybackSampleApp, demonstrating how to retrieve video information using the CurrentItemChangedNotification.
  • Ooyala Skin SDK updates:
    • There was an issue in which the scrubber would appear erratically when seeking a live stream. This issue has been resolved.

Resolved Issues

  • There was an issue in which Ooyala ads would not play on assets encrypted with Fairplay DRM. This issue has been resolved.

4.21.0 Released 2016-12-15

New Features and Enhancements

  • The Ooyala iOS 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).
  • An OOPulsePlayerOptions class has been added to configure the showing or hiding of the Ad Title during ad playback.
  • The default Backlot Host has been changed to cdn-api from cdn.api to support ATS.
  • An IQConfiguration has been added to the umbrella header.
  • The PulsePlayerOptions class for the iOS Pulse Plugin has been added to the reference documentation.
  • The maxLinearBreakDuration option has been add it to the parameter lists for the iOS Pulse Plugin.
  • Sample app updates:
    • A Notification Handling player has been added. The new player sample represents all notifications can be monitored by listeners and handles some key events.
    • ATS has been enabled for the FreewheelSampleApp.
    • The sample apps have been updated with new language paths.
    • Download to Own (DTO) and Rentals (DTR) functionality has been added and is available in the Download To Own Sample Apps. For further instructions on how to use this capability, please refer to Offline Playback: Download to Own (DTO) and Rentals (DTR) for iOS.
    • An example of IQConfiguration usage has been added to the OptionsSampleApp.
    • 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.
  • 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.
    • 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.
    • See Ooyala Player Skin for the latest documentation.

Resolved Issues

  • There was an issue with the scrubber would jump during seek. This issue has been resolved.
  • There was an issue in which ad playback would fail with seek to end events. This bug has been fixed.

4.20.0 Released 2016-11-15

New Features and Enhancements

  • An OOIQConfiguration class has been added, which allows you to customize the player ID used in IQ Analytics. The default player ID is now ooyala ios player.
  • IQ Analytics now uses HTTPS network requests to support ATS.
  • A BitrateChangedNotification event has been added to the OoyalaPlayer header. This event existed previously, but the header constant is now publicly available.
  • An OOIMAConfiguration has been added to customize IMA integration. OOIMAConfiguration adds support for overriding the Locale setting for Google IMA.
  • An OoyalaIMASDK umbrella header has been added.
  • Additional UI classes are now available, and can be used for custom UI development.
  • Sample app updates:
    • Ooyala Pulse has been added to the TVOSSampleApp.
    • Sample code using localeOverride has been added to IMACustomConfiguredPlayerViewController.
    • Entitlement-related SecurePlayer assets now use the OPTPlayerViewController.
  • 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 were issues with IQ Analytics reporting to Ooyala IQ. These issues have been resolved.
  • There was an issue in which the Ad Complete notification for Freewhell was not fired. This bug has been fixed.

4.19.0 Released 2016-10-18

New Features and Enhancements

  • OoyalaPulseIntegration is now available on tvOS.
  • The tvOS SDK framework name has changed from OoyalaTVSDK.framework to OoyalaSDK.framework. This will require changes for all tvOS applications.
  • SSL connections are enabled by default for Adobe Heartbeat. To disable SSL connections, use the sslEnabled property in your OOAdobeHeartbeatConfiguration.
  • Closed captions will now resize based on player width. This includes resizing when switching between Landscape and Portrait views.
  • A disableVASTOoyalaAds option has been added to OOOptions. This new option disables the built-in VAST and Ooyala Ads manager.
  • Additional device information and a seek event are now available in IQ Analytics reporting.
  • A new OOSeekInfo class is available, which is passed in the UserInfo object duing SEEK_STARTED and SEEK_COMPLETED notifications.
  • Sample app updates:
    • A new PictureInPictureSampleApp is available.
    • ATS is enabled on all sample apps except the Freewheel, Skin, and Complete sample apps.
    • The Freewheel sample app now uses an HTTPS ad server.
    • The NPAWSampleApp demonstrates how to use HTTPS routes.
  • Ooyala Skin SDK updates:
    • Added support for scrubber bar colors in skin-config skin.json for both ads and content.
    • Added support for showAdMarquee and showControlBar from skin-config skin.json.
    • Replaced the deprecated ActivityIndicatorIOS 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

Resolved Issues

  • There was an issue in which the Play button would display in the wrong state after preroll. This issue has been resolved.
  • There was an issue in which playing advertisements over AppleTV Airplay would not properly transition from pre-roll to video content. This issue has been resolved.
  • There was an issue in which the IMA midroll click functionality would be disabled while the video was preloading. This issue has been resolved.
  • There were issues with fucntionality for localization overrides for the Closed Captions menu in older versions of the user interface. 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

  • Akamai HD2 HLS Delivery format is now supported on iOS SDKs.
  • The Mobile SDK for iOS now supports multiple analytics plugins.
  • It is now possible, after pausing, to swipe on a remote control to seek on tvOS.
  • The Mobile SDK for iOS now supports supports playback of downloaded (unbundled) assets, and offers new beta support for downloading and offline playback of clear HLS assets on iOS 10 devices.
  • The Mobile SDK for iOS now defaults to HTTP Player API routes for video information.
  • The Mobile SDK for iOS now uses analytics.js, IQ's JSON reporting SDK. We have switched from the Thrift Reporting SDK to the newer, JSON-based SDK.

Resolved Issues

  • 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 an asset without a Pulse Ad would cause the player to crash if the Backlot account had Pulse enabled. This issue has been resolved.

4.17.0 Released 2016-08-16

New Features and Enhancements

  • SecurePlayer has been updated to version 3.8.2.2 for the iOS SDK. If you are using SecurePlayer, you must update your SecurePlayer libraries to this version.
  • The Pulse Sample App has been updated to the latest version of the Ooyala Skin SDK.
  • The tvOS Sample App has been updated to the latest version of the tvOS Skin SDK.
  • The iOS SDK samples import <OoyalaSDK/OoyalaSDK.h> to import all Ooyala classes.
  • Ooyala now offers a new Analytics JSON API, Analytics.js, which requires the JavaScriptCore Framework in your apps. This framework has been added to all sample apps.
  • A progress bar has been added for tvOS.
  • Background support has been added for FCC captions.
  • A seek bar has been added to the end screen. You can set the actionAtEnd variable to one of the values in the OOOoyalaPlayerActionAtEnd enum. See the API documentation for more information.

Resolved Issues

  • There was an issue in which playback in IMA applications would start at the beginning of a DVR rather than the current point in the live stream. This issue has been resolved.
  • There was an issue in which duplicate symbol linker errors would occur when adding the OoyalaAdobeAnalyticsSDK.framework to a project. This issue has been resolved.
  • There was an issue with the OoyalaSkinSampleApp in which the video would not replay after tapping the replay button several times. This issue has been resolved.
  • There were compilation issues with the Secure and BasicPlayback Sample Apps. These issues have been resolved.
  • There was an issue with the Ooyala Skin SDK and integration with Pulse. When discovery was enabled (showUpNext = true in skin.json), after each midroll completion the discovery popup would be displayed, rather than displaying only after the main content had completed. This issue has been resolved.
  • There was an issue in the OoyalaSkinSampleApp in which the overlay would be clipped. This issue has been resolved.

4.16.0 Released 2016-07-19

New Features and Enhancements

  • An experimental Picture In Picture API is now available in the Ooyala SDK, which now requires the AVKit.framework dependency linked to your application. Use of these APIs is on an as-is basis.
  • With the IMA SDK, the [oo_embedcode] macros in IMA ad tag URLs are now replaced with the current embed code.
  • Google IMA v3.2.1 is now supported
  • The Ooyala Mobile SDK for iOS 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 OOOptions.bypassPcodeMatching() method if you are certain you are using the correct pcode
  • You can now import <OoyalaSDK/OoyalaSDK.h> to import all Ooyala classes.
  • The Ooyala Skin SDK now supports FCC styles from iOS Device Settings.

Resolved Issues

  • There was an issue in which closed captions did not properly render when there were metadata tags in the DFXP file. This issue has been resolved.
  • There was an issue in which video would crash if closed captions could not be retrieved. 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 in which closed captions did not properly render when there were metadata tags in the DFXP file. This issue has been resolved.

4.15.0 Released 2016-06-22

New Features and Enhancements

  • The Adobe Marketing Cloud SDK for iOS is now included with the Ooyala Mobile SDK for IOS, and supports both video and ad analytics.

API Changes

  • The following events emitted from OOOoyalaPlayer have been added:
    • OOOoyalaPlayerAdStarted
    • OOOoyalaPlayerAdCompleted

Resolved Issues

  • There was an issue in which excessive logging would occur with Fairplay playback. This issue has been resolved.
  • There were issues related to seeking. These issues have been resolved.
  • There was an issue in which a single VAST ad having multiple linear creative tags would cause the player to crash instead of displaying only one preroll ad. This issue has been resolved.

4.14.0 Released 2016-05-20

New Features and Enhancements

  • Performance monitoring utilities are now available. For an example, see the Advanced Playback Sample App.
  • The following changes have been made to the Vast Ads API:
    • The OOVastAdData, OOVastSequenceItem, and OOVastWrapperAd classes have been removed.
    • A number of Vast Ad classes have been added or modified. For more information, see the Mobile SDK for iOS API Reference.
  • VAST 3.0 Ad Overlays are now supported.
  • Support has been added for error reporting events in VAST 3.0.
  • Nielsen SDK support has been upgraded to 4.0.0.8.
  • iOS 9 Playback previously did not work unless you disabled the Enable Bitcode flag; this is no longer true. You can now set the Enable Bitcode flag to YES.

API Changes

  • The following events emitted from OOOoyalaPlayer have been added:
    • OOOoyalaPlayerAdOverlayNotification
    • OOOoyalaPlayerContentResumedAfterAdNotification
    • OOOoyalaPlayerSeekStartedNotification
  • An onAdOverlayClicked() method has been added to OOOoyalaPlayer.

Resolved Issues

  • There was an issue in which excessive logging would occur with Fairplay playback. This issue has been resolved.
  • There were issues related to seeking. These issues have been resolved.

Release 4.13.0 2016-04-19

New Features and Enhancements

  • FairPlay HLS simple VOD playback and Airplay support.
  • Ooyala Pulse integration with Ooyala Player.
  • VMAP for VAST 3.0.
  • Error reporting for VAST 3.0.
  • 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.
  • Google IMA v3.1.0 is now supported.

Resolved Issues

  • There was an issue in which the OOOoyalaPlayerControlType enum was defined within the OOOoyalaPlayerViewController interface. This issue has been resolved, and the OOOoyalaPlayerControlType enum remains globally available.
  • 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 the scrubber bar would overwrap the iOS status bar in fullscreen mode. This issue has been resolved.

Release 4.12.0 Released 2016-03-16

New Features and Enhancements

  • The Mobile SDK for iOS now provides support for the following types of VAST 3.0 ads:
    • Ads with Icons
    • Skippable Ads
    • Podded Ads with Sequence
  • The default CC On/Off button color has been changed to blue, and is now configurable.

Resolved Issues

  • There was an issue in which Up Next did not provide descriptions of upcoming videos. This issue has been resolved.
  • There was an issue in which Freewheel ads and their controls were not properly rendered with the Ooyala player skin. This issue has been resolved.
  • There was an issue in which cue points did not display for all assets and ads would not play. This issue has been resolved.
Known Issues
  • In the new Skin SDK, Up Next does not display the title or description on small playback screens.

Release 4.11.0 Released 2016-02-16

Resolved Issues

  • There was an issue in which the sharing a link on Facebook or Twitter from fullscreen mode failed to produce a popup to post the link. This issue has been resolved.
  • In the new Skin SDK, there was an issue in which IMA ads occasionally would not play. This issue has been resolved.
  • In the new Skin SDK, there was an issue in which the controls would become unresponsive in fullscreen mode after rotating the device twice. This issue has been resolved.
Known Issues
  • In the new Skin SDK, there is an issue in which the Up Next message may overlap with the Play button.

Release 4.10.0 Released 2016-01-19

New Features and Enhancements

The following new features and enhancements are included in this release:
  • Added AirPlay support in OoyalaPlayer.
  • Updated FreeWheel support for version 6.5.
Resolved Issues
  • When a sender app would disconnect implicitly (e.g. the sender device battery dies, the sender device Wi-Fi network drops), it would remove the Chromecast controls and notifications from the sender device. This issue has been resolved, and the sender app now keeps track of implicit disconnections and attempt to reconnect to a receiver when the sender app is reopened.
  • There was an issue in which build errors would occur when importing OOUIProgressSliderIOS7.h. To resolve this issue, use this import statement instead:
    #import <OoyalaSDK/OOUIProgressSliderIOS7.h>

Release 4.9.0 Released 12/23/15

Bug Fixes

This release includes the fix for a bug where Live Streams sometimes would not show Live UI elements.

Release 4.8.0 Released 12/07/15

New Features and Enhancements

The following new features and enhancements are included in this release:
  • OOUIProgressSliderModeElapsedDuration has been added as a sliderMode for UI.

Release 4.7.0 Released 11/16/15

New Features and Enhancements

The following new features and enhancements are included in this release:
  • This release updates the Youbora Framework.
  • This release adds OOOoyalaPlayerEmbedCodeSetNotification to OoyalaPlayer.

Resolved Issues

This release includes the following fixes:
  • This release adds more useful descriptions to some playback error messages.
  • This release fixes an issue involving some VAST Wrapper ads that would cause crashes when played.

Release 4.6.0 Released 10/21/15

New Features and Enhancements
  • This release updates the Google IMA integration package to display the Google IMA version in the VERSION file.
  • This release updates SecurePlayer in the iOS SDK to version 3.4.5.1.

Resolved Issues

This release includes the following fixes:
  • In order to resolve 200+ DSYM warnings, this release now sets "Enable Modules (C and Objective C)" to disabled on all frameworks.
  • This release makes major changes to key-value observation pairs within the Core SDK.
  • This release fixes an issue where the "Learn More" button did not show when a VAST ad was inserted.
  • This release fixes an issue where closed captions were not always showing up.

Release 4.5.0 Released 9/30/15

New Features and Enhancements
  • Mobile SDK for iOS version 4.5.0 and higher is certified for iOS 9.
  • The Mobile SDK for iOS, available on the Ooyala API Documentation Portal, now includes the Cast, Freewheel, and IMA SDKs.
  • A hostedAtURL property was added to the OOContentItem class. See Mobile SDK for iOS for more information.
  • A vttCaptions property was added to the OOClosedCaptions class to support fully-qualified locale names for supported caption languages. See Mobile SDK for iOS for more information.
  • iOS 9 Playback does not work unless you disable App Transport Security. To maintain playback on iOS 9 devices, disable App Transport Security.
  • iOS9 now supports Admob and Google IMA version 3.0.b16.

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.
  • There was an issue in which the Ooyala SDK was incompatible with openSSL tools. This issue has been resolved.
  • There was an issue with fixed ad impression tracking with multiple ads in a single VAST ad response, which could result in tracking more impressions than actually displayed. This issue has been resolved.
  • There was an issue in which videos with closed captions would only play properly if they were the first video to be played within a given application session. This issue has been resolved.

Release 4.4.1 Released 9/2/15

New Features and Enhancements
  • A destroy() method has been added to the OOOoyalaPlayer class. When the destroy() method is called, the OOOoyalaPlayer object's resources are disposed and all playing ads and content are stopped. Apps using the OOOoyalaPlayerViewController do not need to call the destroy() method explicitly.

Resolved Issues

This release includes the following fixes:
  • An issue where the user could not resume Widevine content protection after ad playback is now resolved.
  • An issue where the user could not resume Widevine content protection after screen unlock is now resolved.
  • An issue where FreeWheel ads kept playing in the background when the home button was tapped is now resolved.

Release 4.4.0 Released 8/21/15

New Features and Enhancements
  • The IMA Ad Manager initialization API has been changed from initWithOoyalaPlayerViewController: to initWithOoyalaPlayer:.

Resolved Issues

This release includes the following fixes:
  • An issue where the user would switch to fullscreen mode in landscape mode, then change orientation to portrait, and the player's control bar would overlap device's status bar is now resolved.
  • An issue where the user could only dismiss controls by tapping video after switching to fullscreen has been fixed and the controls will slide off the screen after 5-10 seconds without user intervention.
  • An issue where after a mid-roll ad was completed, the video would start again but the mid-roll ad cuepoint would still be visible on the scrubber bar is now resolved.

Release 4.3.1 Released 7/15/15

Resolved Issues

  • An issue where Google IMA ads sometimes played when the back button was activated is now resolved.
  • An issue where an ad fail event would end video playback is now resolved.
  • An issue where failure to release resources caused apps to crash is now resolved.

Release 4.3.0 Released 6/24/15

New Features and Enhancements

This release includes the following new features and enhancements:

  • A take down service has been added to stop playback of unauthorized videos.

Resolved Issues

  • This release fixes an issue in IMA where a video not would not play when the adSetCode was not assigned to it.
  • This release fixes an issue in IMA where an audio played in the background after clicking the back button.
  • This release fixes an issue in which the player would repeatedly transition between the loading and ready states.
  • This release fixes an issue in which the player would crash when playing assets with close captions.

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 5/27/15

New Features and Enhancements

This release includes the following new features and enhancements:

  • This release includes support for the NPAW for Youbora Integration. For more information, see the topic New Ooyala QoS Solution powered by NPAW's YOUBORA Analytics in the general release notes.
  • The OoyalaPlayer.basePlayer class and all associated methods are no longer supported.
  • The SDK is enhanced to improve transitions between all types of advertisements and content.
  • The Secure Player libraries are updated to version 03_03_00_0855.

Fixes

This release fixes an issue where the Learn More and Skip Ads buttons sometimes did not work correctly when the preloadContent option was disabled.

Release 4.1.1 Released 5/11/15

Fixes

An issue with Widevine video playback where the video would stall on a playback resume event (playWithInitialTime), is now resolved.

Released 5/1/15

Updates and Enhancements

The following updates and enhancements are included in this release:

The API is updated to allow the Closed Captions methods to be more easily modified. The following two properties are moved from OOOoyalaPlayer to OOOoyalaPlayerViewController:

  • closedCaptionsLanguage
  • OOClosedCaptionsStyle

Fixes

The following issues are resolved in this release:

  • The player crashed when Widevine streams were played using encrypted loopback.
  • The player had intermittent scrubber issues with Widevine mid-roll ads using AirPlay.
  • All ad types had intermittent playback issues using Playready HLS.
  • FreeWheel VideoView events fired during pre-rolls ads instead of on content start.
  • The scrubber did not work during a replay of PlayReady HLS content.

Release 4.0.1 Released 4/15

Updates and Enhancements

The following updates and enhancements are included in this release:

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

Release 4.0.0 Released 4/2/15

Updates and Enhancements

The following updates and enhancements are included in this release:

  • The Ooyala Mobile SDK for iOS 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 iOS Mobile SDK.
    Note: The Omniture sample app is not included in this repository. For details about Omniture see Integration with Omniture on iOS.
  • A sample app for the Apple Watch is now available in the Ooyala Mobile SDK for iOS Sample Apps GitHub repository.
  • The OOOoyalaPlayerViewController API is changed. As of this release you must instantiate the OOOoyalaPlayer and use this player to create the OOOPlayerViewController. This is shown in the following example code:
    OOOoyalaPlayer *player = [[OOOoyalaPlayer alloc] pcode:PCODE domain:domain];
            OOOoyalaPlayerViewController *controller = [[OOOoyalaPlayerViewController alloc] initWithPlayer:player];
  • To improve SDK update and integration tasks the iOS SDK is updated to use static frameworks and static libraries are deprecated. This change includes the core SDK and Freewheel, IMA, and other integrations.

    To update apps for this release removed all OoyalaSDK.a and header references and use the OoyalaSDK.framework reference and change all header references to framework references. For example:

    Replace:

    #import "OOPlayerDomain.h"

    With:

    #import <OoyalaSDK/OOPlayerDomain.h> 
  • The Custom Controls folder content is updated to removed legacy and unneeded files and add the following missing files:
    • OOClosedCaptionsSelectorBackgroundViewController
    • OOClosedCaptionsSelectorViewController

    For more information see About Custom Controls for iOS.

  • Support for in app rendering of clickthrough ads is now available.

Resolved Issues

The following issues are resolved in this release:

  • FreeWheel integrated apps would show a blank screen at a cuepoint event if no ad was available.
  • Google IMA ads were not working on iOS apps.
  • The video time and content were not in sync after a seek event.
  • A seek event would cause the app to crash on live streams.
  • Video overlapped the text in a Google IMA ad.
  • Google IMA ad ended events were failing.

Release 3.5.0 Release Date 3/15

Resolved Issues

The following issues are resolved in this release:

  • FreeWheel mid-roll ads continued to play even after playback was paused and the device was locked and unlocked.
  • Initialize OoyalaPlayer with AdSetCode did not work.
  • Apps were crashing in iOS 7 because HideControls action fired after player was deallocated.
  • 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.
  • Seeking to the end of a mid-roll IMA ad caused interrupted content playback.
  • Seeking to the end of content, with only mid-roll IMA ads, froze playback.

Known Issues

When seeking to a playhead time where an ad should be played, before a playback start event, the ad starts automatically.

Release 3.4.0 Release Date 2/15

Updates and Enhancements

  • API reference documentation is now available online: iOS Mobile SDK API Documentation.
  • iOS 6 is no longer supported. The SDK is now confirmed to support iOS 7 and newer devices.
  • Live Scrubber is now configurable in the app. The scrubber can be turned on and off within the OOOoption configuration. The default setting is to show the live scrubber.
  • Google IMA learn more ads are now configurable to open in Safari, ads open in the native app as a default.
  • Cuepoints now appear on Google IMA ads by default. For information about configuring cuepoints, see Cuepoint Markers.

Resolved Issues

  • An issue where network requests would stall without a timeout implemented is now resolved.
  • An issue where Widevine enabled videos could not be played in the same browser more than one time is now resolved.

Known Issues

Google IMA Ad playback requires cuepoints are initialized for all pre-roll, mid-roll, and post-roll ads.

Release 3.3.0 Release Date 1/15

Updates and Enhancements

  • The SDK API documentation in now found in the SDK APIDocs directory and the SDK release notes are included in the readme.txt file.
  • 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:

Post-roll ads did not play properly on AirPlay.

Known Issues

Please review the following known issues:

Google IMA : If a user seeks to the end of a video while there is an available mid-roll ad, the mid-roll ad will play audio only before the video content completes.

Release 3.2.0 Release Date 11/14

Updates and Enhancements

This release includes the following updates and enhancements:

  • The Getting Started sample app is updated for the ARM64 architecture.

  • The PlayAd method is now exposed to allow dynamic ad insertion during playback. For more information contact your CSM.

  • Player controls are now configurable for all ads, including Google IMA ads.

  • Freewheel ads cue points are now configurable.

  • The iOS Mobile SDK is updated to support the Freewheel 5.18 libraries.

Resolved Issues

The following issues are resolved in this release:

  • Post-roll ads did not play properly on AirPlay.

  • The video gravity could not be changed for ads.

  • Freewheel ad overlays appeared but did not persist as expected.

  • Post-roll ads did not play properly after the app was closed and restarted.

  • Google IMA SDK poddable ads sometimes did not play properly after a device lock event during a previous ad.

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

  • Video casting display presented unexpected behavior on Chromecast after wireless connectivity stalled or failed.

  • Files were missing from the SDK DefaultControlSource folder.

Known Issues

Please review the following known issues:

  • Google IMA SDK assets continue to play on iOS 8 devices after the app is closed.

  • Google IMA SDK asset audio (no video) continues to play on iOS 8.1 devices after the scrubber is pushed to the end.

  • Freewheel ads are sometimes distorted in landscape mode.

Notable Changes in Version 3.1.0 Release Date 10/14

This release includes the following updates and enhancements:

  • This release includes support for armv7s architecture in the SDK library.
  • Spanish and Japanese language prompts are now available for FreeWheel pre-roll and mid-roll ad prompts.
  • The SDK libraries now support ARM64 architectures.
  • armv7s architecture support was not included in the SDK library.

Full Release Notes for Version 3.1.0

Updates and Enhancements

This release includes the following updates and enhancements:

  • This release includes support for armv7s architecture in the SDK library.
  • Spanish language prompts are now available 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 SDK libraries now support ARM64 architectures.
  • The Google IMA SDK sample app is updated.

Resolved Issues

This release resolves the following issues:

  • armv7s architecture support was not included in the SDK library.
  • When Rotating from landscape to portrait and calling [setFullscreen:NO] during an advertisement, the Learn More button sometimes disappears.
  • The Learn More button sometimes disappears after any device orientation change.
  • Google IMA SDK pre-roll, mid-roll, and post podded ads are not played when expected and the ad images do not appear correctly.
  • Airplay playback is paused when the device is locked.
  • Asset audio continues to play after the app Back button is activated.
  • The asset progress bar continued to appear in fullscreen mode for live assets.
  • FreeWheel mid-roll ads not playing properly.
  • Analytics are not accurate for plays from iOS devices.

Known Issues

  • Intermittent crashes may occur when users initiate AirPlay playback on iOS 8.0.x devices. This only occurs when a device lock code is used for AirPlay. To work around this issue restart the app to resume video playback.
  • An issue with the Default CustomControls package prevents use of custom controls with this release.

Full Release Notes for Version 3.0.1

Resolved Issues

The following issues are resolved for Version 3.0.1:

  • The Learn More button rendered in the middle of the player, or duplicate Learn More buttons appeared.
  • Google IMA mid-roll ads did not play when the user forwarded the video using the scrubber.
  • Asset resume did not occur after a Freewheel mid-roll ad played.
  • Freewheel ads resume playback automatically, when the application is unlocked or resumed.
  • Console logs file are generated multiple times for the duration of the playing video content.
  • Video audio continued to play when the asset was dismissed via “Back” button navigation.

Known Issues

  • In some cases, when the user clicks the Learn More button in horizontal orientation, and then returns to the video, the video is presented in portrait mode. This affects Freewheel Ads only.
  • In some cases, when the user is watching a Freewheel served ad with the “Learn More” button in Landscape mode and switches to portrait mode, the “Learn More” disappears temporarily until the user changes the device orientation again.
  • The "Learn More" button is not clickable on Google IMA Ads due to a bug with Google IMA SDK.

Notable Changes in Version 3.0.0

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 iOS 6 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 updated Ooyala SDK for FreeWheel iOS 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 details about this features see Working with FCC Ratings for iOS.

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 not left behind it 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 updated Ooyala SDK for FreeWheel iOS here: Ooyala SDK for FreeWheel iOS

Note: The sample apps included in the FreeWheel SDK show examples of the new SOAP functionality.

Full Release Notes Version 3.0.0

Resolved Issues

The following issues are resolved for Version 3.0.0:

  • Pre-roll ads did not appear in landscape view mode.
  • Playback crashed for some advertisements in Apple TV mode, using iOS 8.

Notable Changes in Version 2.7.1

The Ooyala mobile SDK for iOS is ready for iOS8! We are releasing an update to our SDK in advance of Apple’s September 17th go-live date so that all our customers will be able to support the new operating system.

The GA Ooyala mobile SDK for iOS is located on Ooyala Downloads. We recommend that all customers download and update their Ooyala mobile SDK for iOS to the GA version.

Please consider the following recommendations:
  • Please upgrade your apps with the latest iOS SDK and submit the apps to the Apple App Store.
  • Please report any playback issues to Brightcove Technical Support.
  • If you are using advertisements in your iOS app, apply the Ooyala updates before the Apple GA timeline to avoid advertising issues in production when end users download the iOS 8 GA version on their devices.

Full Release Notes for Version 2.7.1

Bug Fixes

The following issues, found in the beta release of the Ooyala mobile SDK for iOS v.2.7.1, are now resolved:
  • A consistency issue where external playback is not indicated when AirPlay is being used, is now resolved.
  • An issue where the player would return to full screen view when set to modal view is now resolved.
  • An issue where the Univision app crashed in full screen mode when the display was rotated, is now resolved.
  • An issue where Apps crashed for VAST ads is now resolved
  • An issue where video did not resume from mid-roll ads (VAST, IMA, Freewheel) is now resolved.
  • An issue where Apps crashed when trying to play an IMA Wrapper Ad is now resolved.
  • An issue where IMA ad timing was 10x slower than expected and caused delayed content replay, is now resolved.
  • An issue where Apps took a long time to load IMA Skip Ads, and after loading completed, the skip ad did not play, is now resolved.
  • An issue where Closed Caption view buttons did not work on the iPad simulator, for Widevine encrypted videos, is now resolved.
Note: If you are using Google IMA Ads in your iOS app, please download the latest Google IMA iOS SDK: IMA iOS SDK

For information about integration with Google IMA, see Integration with Google IMA on iOS.

Known Issues

The following items are known issues with the existing iOS SDK release. These items will be addressed in a future release:
  • Initial time playback and seek for Airplay playback.
  • Cannot seek when video is paused.
  • Video playback crashes intermittently after passcode is prompted during Airplay (dependent on AppleTV fixing Airplay issues on iOS8 devices).

Notable Changes in Version 2.7.0

Version 2.7.0 of the Ooyala Mobile SDK for iOS has been released. A notable change in version 2.7.0 is the bug fix for graphical issues with closed captions styling for iPad.

Full Release Notes for Version 2.7.0

Bug Fixes

Fixed graphical issues with closed captions styling on iPad.

Version 2.6.1

Notable Changes in Version 2.6.1

Version 2.6.1 of the Ooyala Mobile SDK for iOS has been released. A notable change in version 2.6.1 is the removal of the requirement of the AdSupport.framework from the Ooyala SDK. This update fixes a bug from version 2.5.0 and version 2.6.0 where applications that did not present any advertisements could be rejected from the app store due to the requirement of AdSupport.framework.

Full Release Notes for Version 2.6.1

  • Removed requirement of AdSupport.framework from the Ooyala SDK. Developers that use [LR_DEVICEID] must query the IDFA from their application [OOVASTUtils setAdvertisingId].
  • Disabled the Roll-up and Paint-on closed caption style on iOS.
  • Added “FullscreenDoneClicked” notification from OOOoyalaPlayerViewController.
  • Added “imaAdClicked” notification from OOIMAAdManager.

Version 2.6.0

Notable Changes in Version 2.6.0

Version 2.6.0 of the Ooyala Mobile SDK for iOS 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.

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.
  • Made DebugMode.h public, so you can disable Ooyala SDK logging if desired.
  • We have transitioned to a newer packaging script. If there is anything missing from an SDK package, please file an issue with Technical Support.
  • Added support of the hh:mm:ss:ff timestamp format for Closed Captions.
Bug Fixes
  • Fixed Widevine Playback resuming when authorization heartbeats are disabled.
  • Fixed a bug in which the current item duration was not available on Current Item Changed Notification.
  • Fixed the volume scrubber UI for iOS7.1.

Freewheel - IMA Bug fixes

  • Verified integration with Freewheel version 5.15.
  • Fixed Freewheel Ad Player skipping ad after pausing.
  • Fixed Freewheel Ad Player when fast forwarding through ad spots.
  • Fixed Freewheel Ad Player when invalid ad would crash application.
Documentation Changes
  • Mobile SDK v.2.6.0 for iOS—Updated iOS SDK documentation for version 2.6.0.
  • Integration with Google IMA on iOS—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.

Version 2.5.0

Notable Changes in Version 2.5.0

Version 2.5.0 of the Ooyala Mobile SDK for iOS has been released. Version 2.5.0 includes bug fixes around Closed Captions and Airplay support. 2.5.0 also includes changes to VAST advertisement functionality, and will require linking your application with AdSupport.framework.

Full Release Notes for Version 2.5.0

API Changes
  • Implemented the [LR_DEVICEID] 'macro' expansion in VAST URLs to allow for ad playback via LiveRail in mobile apps. Requires linking your application with AdSupport.framework.
  • Added OODebugMode to customize logs.
  • Added bitrate change notification for HLS playback.
Bug Fixes
  • Stopped use of the pop-over CC menu on iPads.
  • The CC button is not allowed to show during ads.
  • Fixed a bug where closed captions could be obstructed by video playback.
  • Fixed enable/disable AirPlay to ensure that both audio and video are ‘AirPlayed’.
  • Fixed popover when switching between inline/fullscreen.
  • Fixed crash when calling OoyalaPlayer stop.
  • freewheelplayer play will be called twice in the mid-roll scenario and the timer won't get invalidated and cause a leak. This change addresses a bug that would cause the app to crash when a FreeWheel mid-roll ad was playing.
  • Made changes to Analytics reporting to increase accuracy.
  • Fixed FreeWheel ad error by timing out after 5 seconds if playback fails.

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 iOS has been released. Version 2.4.0 includes:

  • Major Changes to Closed Captions UI and Closed Captions API.
  • To comply with FCC Regulation, we require the inclusion of QuartzCore.framework and MediaAccessibility.framework. You may mark MediaAccessibilty.framework as optional.
  • A new OOPlayerDomain class that must be used for all instances of OOOoyalaPlayerViewController.
  • 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

API Changes
  • Extracted 'player domain' as a concrete type and put validation enforcement in there, and updated APIs using such. Fixed up sample projects to use OOPlayerDomain.
  • Now throw an uncaught exception if domain string looks bad.
  • Pass all available resolutions to iOS devices, as opposed to filtering.
  • Added setControlsViewControllers method.
  • Added setLiveScrubberShowing method.
  • Major Closed Captions UI Updates to adhere to FCC regulations. Make sure QuartzCore.framework, and MediaAccessibility.framework ('optional') are included in your applications.
Freewheel/IMA Bug fixes
  • Fixed the bad-ad-infinite-loop when Freewheel returns an actual error via FW_NOTIFICATION_REQUEST_COMPLETE.
  • Fix for view frame sizing when fullscreen for both iOS6 and iOS7.
  • Fixed IMA post-roll for iOS.
  • Now pass current item duration into Freewheel instead of Stream Player duration.
  • Now avoid adjusting the Learn More UI for Google IMA ads.
  • Attempt to fix race where FW comes back before we've set up our player as delegate.
Other Changes
  • Updated Adobe Pass SDK to 1.7.6.
  • Renamed JSONKit category methods to avoid name collisions with other categories.
  • Added support for x86_64 as a valid architecture.
  • Removed iOS 4.3-specific code.
  • Fixed memory leak with Ooyala Player/Closed Captions View Controllers.
Documentation Changes
  • Removed reference to FreeWheel libraries folder. It no longer exists.
  • Changed description of FreeWheel Headers file indicating it is an Ooyala file not a FreeWheel file.

Version 2.1.0

Notable Changes in Version 2.1.0

Version 2.1.0 of the Ooyala Mobile SDK for 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.
  • Customer-reported and unreported optimizations and bug fixes.

Note: In this SDK with version 2.1.0, the BaseMoviePlayer class been renamed BaseStreamPlayer.