Google Cast SDK Release Notes

For each new version of Google Cast that is released, the changes are described below and the API references are updated. For changes to the Design Checklist, see its changelog.

November 4, 2020

iOS Sender 4.5.2

  • Updated the minimum version of Protobuf library to 3.13 in CocoaPods. Usage of previous Protobuf versions will cause the SDK to crash.
  • This release is exclusive to Cocoapods and uses the same binary as v4.5.1.

October 13, 2020

iOS Sender 4.5.1

  • Fixed an issue where GCKUICastButton with a custom device picker was not updating to reflect the correct Cast state.
  • Fixed the warning of "Conflicting nullability specifier on return types."

September 14, 2020

Web Receiver

  • Upgraded Shaka Player to 2.5.16.

iOS Sender 4.5.0

  • Added support for Cast device discovery changes in iOS 14, which requires explicit user permission when casting for the first time. See First-time casting in iOS 14 for more information.
  • Updated minimum SDK support to iOS 10.

September 8, 2020

Chrome Sender

August 31, 2020

Web Receiver

  • Added support for #EXT-X-DATERANGE in HLS / EventStream in DASH.

August 3, 2020

iOS sender 4.4.8

July 29, 2020

Android Sender 19.0.0 and Android TV Receiver 17.0.0

July 13, 2020

Web Receiver

  • Improved media category detection for the default UI (video vs audio).
  • Added support for live absolute time from Shaka Player.
  • Fixed an issue with audio glitches on Nest Hub Max devices.
  • Upgraded Shaka Player to 2.5.12.

May 4, 2020

Web Receiver

  • Timeout values for Google Assistant commands are now configurable.
  • Detailed MPL error codes are now exposed in error events.
  • Supported media commands can now be enforced by using the enforceSupportedCommands flag.
  • Fixed the supported commands reported during a break in playback.
  • Fixed an issue with an Assistant shuffle load request.
  • Fixed a bug in getStats values.

March 12, 2020

Web Receiver

  • Added new device capability IS_CBCS_SUPPORTED to deviceCapabilities.
  • Upgraded Shaka Player to 2.5.8.

February 27, 2020

iOS Sender v4.4.7

  • Fixed the physical volume buttons for apps that don't use any UI components from the SDK.
  • Fixed an issue with the currentTime label in the expanded controller when pressing the forward or backward buttons repeatedly.
  • Media items in GCKMediaQueue are persisted after the app moves to the background.
  • UI customization updates:
    • The progress bar of the mini controller is now customizable.
    • The background color of the navigation bar and toolbar of the Cast dialog is now customizable.
    • Fixed UI issues specific to iPhone X.
  • Fixed a few issues causing stalls and crashes.

February 24, 2020

Android Sender 18.1.0

January 22, 2020

Web Receiver

  • Fixed an issue where multiple media statuses are broadcast when changing supported commands.

Receiver v2

  • Improve bitrate selection for VAST Ads.

MPL

January 7, 2020

Web Receiver

  • Added support for ID3 timed metadata in cast.framework.events.EmsgEvent. Additionally, EmsgEvent is now dispatched for HLS/CMAF content.
  • Fixed an issue where player data was missing during PLAYER_LOAD_COMPLETE when transitioning to a new media session.
  • Fixed an issue where the media icon was overlapping the break clip number and countdown.
  • Fixed issue where the countdown of the first break clip would always display 0:00.
  • Upgraded Shaka Player to 2.5.6.

Web Receiver v2

  • Added new device capability IS_DEVICE_REGISTERED to deviceCapabilities. If set, the Cast device is registered in the Cast Developer Console for debugging.
  • Fixed a stalling load issue.
  • Individual media error messages are now sent for every failed item in the queue.

MPL

  • Fixed an issue with live streams where audio would continue to play for some time after a stop message was received.
  • Fixed an issue where video compression artifacts would show during quality level changes.
  • Fixed an issue where HLS streams using *.m4s segments were failing.

December 5, 2019

Android Sender 18.0.0

  • Added setMediaSessionEnabled for developers to enable and disable a media session created by Cast SDK.
  • Changed how media notifications show during a Cast session. If media notification is enabled, it will always show during a cast session. Previously, it would only show when the app was in the background.
  • Changed some media-related classes to implement a Parcelable interface.

November 11, 2019

iOS Sender v4.4.6

  • Fixed an issue related to the minimum supported version of iOS 9.

October 7, 2019

Web Receiver

  • Exposed tracks roles as part of tracks metadata.
  • Upgraded Shaka Player version to 2.5.5.

September 23, 2019

iOS Sender v4.4.5

  • Improved support for Cast device discovery and session management.
  • Added new media commands to GCKMediaStatus.
  • Added whenSkippable property to GCKAdBreakStatus.
  • UI fixes for Ads and iOS 13.

September 11, 2019

Android Sender 17.1.0

September 9, 2019

Web Receiver

  • TV_SHOW metadata type now has a "Playing Next" preview in the default player if the next item is preloaded.
  • Added the ContentRating class to the cast.framework.messages namespace.
  • Updated the default UI audio title so that metadata.artist takes precedence over metadata.albumArtist.
  • Added support for negative startTime values to indicate start time relative to content end or live edge.
  • Media Browse:
    • Media Browse drawer is now automatically hidden after 30 seconds of user inactivity.
    • Added Play/Pause button and media item thumbnail to the top right corner of the Media Browse overlay.
    • Updated Media Browse list behavior. Now horizonal scroll is reset to the initial left-most position every time Media Browse content is set.
  • Bug Fixes:
    • Delayed resolving BasePlayer end promise to allow media element event to be fired.
    • Handled load error for Ad preloading.
    • Watermark is now displayed with the rest of the metadata.
    • Default audio UI on Chromecast respects .progressBar styles.
    • Eliminated splashing of an IDLE screen before LOADING and between playing of subsequent media items.
    • Fixed seek stall for Dash content.

Web Receiver v2

  • Added the ContentRating class to the cast.receiver.media namespace.
  • Fixed a bug where error data propagated incorrectly when there were multiple items in queue.

Media Player Library

  • Added HLS #EXT-X-MEDIA attributes to the API.
  • Bug Fixes:
    • Fixed an issue with failed SourceBuffer remove() operations causing audio track switching to crash playback.
    • Fixed a parsing issue when a packed audio format type was specified (for example, *.ec3) but MPEG-4 based segments are used (for example, *.mp4, *.mp4a, and so on).
    • Fixed an HLS issue where inband CEA608 captions were displayed with noticeable latency.
    • Fixed HLS and Smooth content with no audio failing to load.

August 27, 2019

Chrome Sender

  • Chrome Sender now uses the new Custom Elements v1 syntax. This version replaces v0, which has been deprecated.
  • Fixed changed events for breakTime, breakClipTime, and liveSeekableRange, using new the getEstimatedBreakTime, getEstimatedBreakClipTime, and getLiveSeekableRange functions added to Chrome M77.

August 12, 2019

iOS Sender v4.4.4

  • Improved experience on iOS 13.
  • Improved support for Cast device discovery.

July 30, 2019

Web Receiver

  • Upgraded Shaka Player version to 2.5.1.
  • Fixed issue where metadata overlay disappeared too quickly during content loading.
  • Fixed handling of rejection in load interceptor to clear load state.
  • Updated setBrowseContent to be nullable.
  • Fixed issue where reported current time was incorrect when seeking over Ad breaks.
  • Added support for ignoreTtmlPositionInfo to ignore TTML captions positioning.
  • Improved support for handling of load errors:
    • Avoided firing multiple MediaFinishedEvents.
    • Triggered media manager error callback to clear player on load error.

July 22, 2019

iOS Sender v4.4.3

  • Improved support for handling of load errors by providing an error_reason.
  • Released a version of the SDK without Guest Mode.

June 17, 2019

Android Sender 17.0.0

  • The latest SDK switches from Android Support Libraries to Jetpack (AndroidX) Libraries. Libraries will not work unless you make the following changes in your app:
    • Upgrade com.android.tools.build:gradle to v3.2.1 or later.
    • Upgrade compileSdkVersion to 28 or later.
    • Update your app to use Jetpack (AndroidX). Follow the instructions in Migrating to AndroidX.
  • For more information see the Google APIs for Android Release Notes.

June 10, 2019

Web Receiver

  • Introduced support for Media Browse, a new feature for discovering content on smart displays.
  • Added localization in the default UI for 9 new locales:
    • Danish
    • English (UK)
    • English (India)
    • English (Singapore)
    • French (Canada)
    • Italian
    • Norwegian
    • Dutch
    • Swedish
  • Removed rounded corners from album art for the remote UI.
  • Bug fixes for Live and other areas.

iOS Sender v4.4.2

  • Guest Mode
    • Added support for the "Enable Guest Mode" option from the Cast Developer Console.
    • Fixed a Guest Mode session management issue.
  • Bug Fixes
    • Fixed a localization issue introduced in v4.4.1.

April 24, 2019

iOS Sender v4.4.1

  • Introduced alpha support for live streams. For details, see the developer guide.
    • Added new data structures and attributes for live stream status.
    • Added new GCKMediaMetadata keys.
    • Added Live stream media commands:
      • [GCKRemoteMediaClient loadMediaWithLoadRequestData:]
      • [GCKRemoteMediaClient seekWithOptions:]
    • Improved expanded controller UI to support live streams:
      • Changed the layout and appearance of the expanded controller.
  • Bug Fixes
    • Fixed GCKUICastContainerViewController's bottom on iPhone X.
    • Fixed reconnection issue when the OS is performing extensive network activities.
    • Fixed crash in accessibility label initialization with GCKUICastButton.

April 23, 2019

Web Receiver

  • Introduced alpha support for live streams. For details, see the developer guide.
    • Updated UI to support live streams including live indicator.
  • Added mediaCategory field to media status to indicate if a media is a video, audio, or a photo.
  • Bug Fixes
    • Fixed usage of the playbackConfig.segmentHandler return value.

Media Player Library

  • Added HEVC codec support to HLS in MPL.

Chrome Sender

  • Introduced alpha support for live streams. For details, see the developer guide.
  • Introduced support for ads. For details, see the developer guide.
    • Added RemotePlayerController.skipAd() for skippable ads.

Android Sender 16.2.0

  • Introduced alpha support for live streams. For details, see the developer guide.
    • Added new data structures and attributes for live stream status.
    • Added new MediaMetadata keys.
    • Added Live stream media commands:
      • RemoteMediaClient#load(MediaLoadRequestData)
      • RemoteMediaClient#seek(MediaSeekOptions)
    • Improved expanded controller UI to support live streams:
      • Added live stream support to the expanded controller UI widgets.
      • Changed the layout and appearance of the expanded controller.
      • Introduced the live stream compatible CastSeekBar widget to replace the native SeekBar.
      • Modified the ExpandedControllerActivity to use the CastSeekBar instead of SeekBar for live stream compatibility. The ExpandedControllerActivity#getSeekBar() is now deprecated and will return a dummy instance.
  • Added a new MediaStatus#PLAYER_STATE_LOADING player state:
    • When the Web Receiver begins loading the media, the playerState property in MediaStatus is set to MediaStatus#PLAYER_STATE_LOADING until it begins buffering or playing content.
    • In most cases, the app handles this state the same way it was handling MediaStatus#PLAYER_STATE_BUFFERING.
    • Buffering and loading states are not always interchangeable.
    • While loading, the Web Receiver has not yet resolved all the media information, and so the only media information available is what was present in the sender's load media request.
    • While buffering, the media information may contain additional information resolved by the receiver.
  • Modified MediaMetadata to support audio books:
    • Added new MediaMetadata keys.
    • Added new metadata type for audiobooks.

March 25, 2019

Web Receiver

  • Replaced usage of document.registerElement() with customElements.define() to make the Web Receiver SDK compatible with newer versions of the Cast platform.
  • MediaStatus.breakStatus now returns an empty object when ad breaks are present for content but an ad break is not currently playing.
  • Fixed an issue with inline VAST tags parsing.

Media Player Library

  • Fixed the issue of ~20s delay when switching audio tracks.

February 13, 2019

Web Receiver

  • Fixed the sudden appearance of the Skip Ad button for Touch UI.
  • Fixed displaying breaks information on remote control.

Media Player Library

  • Fixed an issue with handling licenseUrl for preloaded media.

February 5, 2019

iOS Sender v4.3.5

  • Added support for Audiobook metadata, see GCKMediaMetadata.h for more details.
  • Set correct value for static_framework on the podspec.
  • Split styleAttributes for the navigation bar and the toolbar in the connection controller.
  • Bug Fixes
    • Fixed a crash on certain failed database initializations.
    • Fixed an issue with the Web Receiver volume bar during incoming phone calls or alarm rings.
    • Fixed the redundant calling of certain delegate methods during discovery.
    • Fixed an issue where the media queue list wouldn’t clear after the last item in the queue finished playing.
    • Disallowed showing non-reachable nearby devices when the network is not available.
    • Disabled the volume slider on the device view controller for devices in which the volume cannot be controlled.