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.
October 28, 2024
Android Sender 22.0.0 and Android TV Receiver 21.1.1
- Fixed a potential Denial Of Service vulnerability found in the Protobuf Java Lite library.
- Deleted MediaNotificationService. It shouldn't be used by applications directly.
- Fixes a bug for devices running Android R or older where trying to display an image that is too small in a Google Cast notification can lead to a System UI crash.
September 4, 2024 November 1, 2024
Web Receiver 3.0.0133 3.0.0135 3.0.0137
- The default Shaka Player version used by CAF is updated from 4.3.4 to 4.9.2. See the Shaka Player changelog for a complete list of changes.
- Enabled content preload for Shaka player. This allows seamless switching between media items or ad breaks.
- Fixed errors caused by Shaka switching codecs.
- Added a new field
ErrorSeverity
for Shaka errors. If severity isRECOVERABLE
, playback should not stop. - Fixed a content load failure for concurrent load requests.
- Internally, CAF now uses
shaka.Player#attach
to attach a media element instead of passing the media element to theshaka.Player
constructor (deprecated in the Shaka API). - Added
frameType
andframeDescription
fields tocast.framework.events.Id3Event
. These fields are populated when Shaka Player is used for playback. - Added
REQUEST_GET_STATUS
andREQUEST_PRELOAD
events. Those events can be listened withPlayerManager#addEventListener
. - Added an error response for load requests with an incorrect
requestId
instead of silently failing. - Fixed warning log for Shaka Player
jumpLargeGaps
config, which was deprecated in Shaka v4. - Started populating
requestId
in theMediaStatus
message for aLOADING
state. - Recycle Shaka player instance when loading new content.
- Dropped support for deprecated
QUEUE_SHUFFLE
media command. UseQUEUE_UPDATE
instead. - Fixed support for VAST ad pods where each
<Ad>
tag has asequence
attribute and a nested<Wrapper>
tag. - Fixed propagation of the
crossorigin
attribute without a value from<cast-media-player>
to the nested<video>
element. - Expose inband audio language in MPL.
August 22, 2024
iOS Sender 4.8.3
- Fixed a bug where Cast Button wouldn't open the device picker on receiving a tap.
- Fixed a crash that affects devices running iOS 17 and later related to AVRouting.
April 18, 2024
iOS Sender 4.8.1
- The minimum version supported by Cast SDK is now iOS 14.
- Privacy manifest included in the package along with the signed xcframework.
- Guest mode has been deprecated and removed. A single flavour of SDK will be available for integration from this release.
- Fixed a crash if a short ad is played sometimes while casting.
December 11, 2023
Web Receiver 3.0.0122
- Added support for Ad Pods and Ad Buffet for VAST.
- Updated Cast Player media controls UI for Google TV devices.
- Added a new
audioTrackInfo
field to theTrack
object. - Added
cast.framework.system.Message
, that represents a message received from or sent to a sender. - Changed the seek break logic. Now the Web Receiver creates a synthetic
seek-{timestamp}
break only when there are more than 1 breaks returned fromBreakManager#setBreakSeekInterceptor
, otherwise the seek break remains equal to the original break on a timeline. - Added
CastReceiverOptions#shakaVariant
option to load debug versions of Shaka Player in CAF. -
Fixed
PlaybackConfig#licenseRequestHandler
andPlaybackConfig#licenseResponseHandler
not being recognized with Shaka for HLS when AES-128 encryption is used. - Fixed
ID3Event
not being fired when Shaka Player is used. - Fixed side-loaded text tracks when preroll ads are used.
- Fixed text rendering when
UITextDisplayer
is used. - Fixed various case-sensitivity issues for VAST, MIME types, and content protection system names.
- Fixed various issues with forced captions.
- Fixed populating
EndedReason
codes forBREAK_CLIP_ENDED
events.
December 4, 2023
Android Sender 21.4.0 and Android TV Receiver 21.0.1
-
Released play-services-cast:21.4.0 and play-services-cast-framework:21.4.0
- Increased minSdkVersion to from 16 to 19.
-
Updated to depend on androidx.mediarouter:mediarouter:1.6.0-beta01. This makes
MediaRouteButtons
always visible by default. This allowed for decreasing the scenarios where Cast device discovery is started automatically without user action. -
Added
CastOptions.Builder#setSessionTransferEnabled
to set whether the sender application should display Cast devices when the Output Switcher is enabled. The default value is true. -
MediaSessions
are no longer created when apps don't setCastMediaOptions
or set CastMediaOptions to null. -
Fixed a
MiniControllerFragment
android.view.InflateException
error that could occur when usingFragmentContainerViews
. -
Added new versions of
CastButtonFactory#setUpMediaRouteButton
that returnTasks
that apps can listen to for a success or a thrown exception. The old versions that do not take anExecutor
argument will ignore ModuleUnavailableExceptions and fail silently.
-
Released play-services-cast-tv:21.0.1
- Increased minSdkVersion to from 16 to 19.
- This release includes quality improvements
July 20, 2023
iOS Sender 4.8.0
- The minimum version supported by the iOS SDK is now iOS 13.
- First stable XCFramework release.
- XCFrameworks available through Cocoapods.
- Restored the functionality to control volume with physical volume buttons during media playback.
- Cast button now respects tint color when used in a navigation bar.
- Navigation title color can now be customized using the GCKUIStyle API.
- Fixed transparent navigation bar issue in Media Track Captions List View.
- Fixed a crash in the XCFramework beta.
- Added an API to bind a UIControl with forward or rewind actions.
- Added casting support to Pixel tablets.
July 6, 2023
Web Receiver 3.0.0111
-
Added support for dynamic ad insertion using
BreakManager
addBreak(breakData, breakClips, broadCastMediaStatus)
andremoveBreakById(breakId)
. -
Added
Subtype
string parsing to Smooth manifests. -
Added support for async requests in the
manifestRequestHandler
,segmentRequestHandler
, andlicenseRequestHandler
for Shaka Player. - Added support for forced subtitles.
- Bumped the default Shaka version for CAF to v4.3.4.
-
Clarified
setActiveByIds
parameter description. - Corrected how CAF chooses distinct audio tracks.
- Corrected request body type conversions for Shaka request filters.
-
Added capability to query
CreativeInformation
related to aBreakClip
inBreakManager
getCreativeInfoByClipId(breakClipId)
. - Fixed media metadata missing during the loading of the media element on DPad-controlled devices.
-
Added properties
hlsSegmentFormat
andhlsVideoSegmentFormat
toBreakClip
. - Fixed case-sensitive MIME type comparisons using MPL.
- Fixed live HLS (TS-based) infinite buffering on load using Shaka Player.
-
Fixed the
PlayerDataBinder
behavior for theIS_AT_LIVE_EDGE_CHANGED
event. - Fixed infinite loop on insufficient data provided in TS segments using MPL.
-
Added
error.stack
for Shaka Player errors. -
Changed to use the
audioMimeType
field instead ofaudioCodec
from Shaka Player's track object to populate thecast.framework.messages.Track.trackContentType
field for variant tracks. -
Added
shaka.extern.track.label
tocast.framework.messages.Track.name
for Shaka Player tracks. -
Expanded the
cast.framework.stats.Stats
object to account for existing fields inshaka.extern.Stats
. - Fixed media time calculations for content with expanded embedded breaks.
March 28, 2023
Android Sender 21.3.0 and Android TV Receiver 21.0.0
-
Released play-services-cast:21.3.0 and play-services-cast-framework:21.3.0
-
NotificationManager
is now used to post Cast media notifications instead ofForeground Service
. -
Added a new
CastReasonCodes#CAST_CANCELLED
to indicate Cast sessions being canceled.
-
-
Released play-services-cast-tv:21.0.0
- Fixed nullable annotation for
MediaManager
.
- Fixed nullable annotation for
October 17, 2022
Web Receiver 3.0.0105
- Upgraded Shaka player to version 3.2.11.
-
Added
cast.framework.PlaybackConfig#enableUITextDisplayer
to render captions in Shaka Player using the DOM. -
Added
cast.framework.CastReceiverOptions#shakaVersion
andcast.framework.CastReceiverOptions#useShakaForHls
to allow receivers to use Shaka Player for HLS playback. -
PlaybackConfig#manifestHandler
,PlaybackConfig#segmentHandler
, andPlaybackConfig#licenseHandler
can now access HTTP response headers. -
Added
customData
toCommandAndControlManager#ErrorResponseData
when theLOAD_BY_ENTITY
message resolves with an error.
October 10, 2022
Android Sender 21.2.0
-
Released play-services-cast:21.2.0 and play-services-cast-framework:21.2.0
-
Introduced the
Output Switcher
feature. -
Added a new API
Cast.Listener#onDeviceNameChanged()
to notify the change of device name forstream transfer
. -
Deprecated
CastOptions.Builder#setVolumeDeltaBeforeIceCreamSandwich(double)
andCastOptions#getVolumeDeltaBeforeIceCreamSandwich()
. -
Fixed
ForegroundServiceStartNotAllowedException
with theMediaNotificationService
. -
Updated
MediaNotificationService
withMedia controls in System UI
. -
Updated
RemoteMediaClient
APIs to accept nullablecustomData
. -
Updated
MediaInfo.Builder
to accept eithercontentId
orcontentURL
. -
Updated
ImagePicker#onPickImage
to accept nullableMediaMetadata
. -
Updated the
com.google.android.datatransport:transport-api
dependency to the latest version.
-
Introduced the
August 8, 2022
Android Sender 21.1.0 and Android TV Receiver 20.0.0
-
Released play-services-cast:21.1.0 and play-services-cast-framework:21.1.0
-
Deprecated
CastContext#getSharedInstance(Context)
. Instead, useCastContext#getSharedInstance(Context, Executor)
, which returns a Task API, andModuleUnavailableException
for handling the exception when the Cast SDK fails to load the internal Cast module. -
Deprecated
ApplicationMetadata#getImages()
. UseApplicationMetadata#getIconUrl()
instead which returns the application image that is set in the Cast Developer Console. -
Fixed a
ConcurrentModificationException
error that could occur when registering and unregisteringMediaQueue.Callbacks
. -
Fixed
MediaInfo#getStreamDuration()
for Live Streams. -
Fixed the notification trampoline restrictions for
MediaNotificationService
on Android S. -
Fixed issue for
CastContext
leaking reference to activity. - Fixed a bug where a sharp background image is displayed during an ad instead of a blurred version.
-
Deprecated
-
Released play-services-cast-tv:20.0.0
- Bumped the
minSdkVersion
from 14 to 16. -
Fixed an issue with
MediaManager#setSessionCompatToken(MediaSession.CompatToken)
where a null argument wasn’t properly supported.
- Bumped the
March 31, 2022
Web Receiver 3.0.0103, MPL Player 1.0.0.113
- Upgraded the default Shaka player version to 3.2.2.
-
Added a new API,
cast.framework.PlaybackConfig#shakaConfig
, to allow overriding Shaka player version and other Shaka options. -
Added a new API,
cast.framework.ui.Controls#hasMediaControlsOverlay()
, to query whether the media control overlay is rendered on top of their application. -
Added a new style,
cast.framework.ui.ControlsButton.LIKE_HEART
, for the Like user action. -
The
currentMediaTime
value of thecast.framework.events.EventType.BREAK_CLIP_ENDED
event data now represents the current time of the latest break clip at the moment the event occurred. -
Added a method
cast.framework.PlayerManager#getRawCurrentTimeSec
that returns the media time of the media element. -
Added
cast.framework.NetworkRequestInfo#timeoutInterval
to specify the HTTP request timeout for player requests. - Fixed MPL bugs in decoding CEA 608/708 captions for demuxed A/V streams.
- Fixed the MPL WebVTT timestamp parsing logic to accept more than 2 digits for the hours value.
December 9, 2021
Android Sender 21.0.0
- Added better nullability support for Kotlin, by making null safety violations an error. Java developers will see no impact. Kotlin developers might see new build failures if they have existing code that was not null-safe.
November 19, 2021
iOS Sender 4.7.0
- Fixed iOS sender support for using ATV credentials with Cast Connect.
- Fixed a bug where navigation bars had transparent backgrounds when building with Xcode 13.
-
Fixed
accessibility issues
reported with the
GCKUICastButton.
- Fixed a bug where switching between WiFi and cellular would disconnect a cast session, instead of suspending it.
- Dropped support for iOS10 and iOS11, and as a consequence, support for 32-bit architectures.
- Other bug fixes and performance improvements.
November 16, 2021
Android Sender 20.1.0
- Note: Apps targeting Android 12 must update to Android Sender 20.1.0 to prevent a runtime crash.
- Queue improvements
-
Added a new
itemsReorderedAtIndexes
callback to MediaQueue that gets called when the queue has been reordered. - Added support for the serialization of queue commands.
-
Made the
customData
param inRemoteMediaClient#queueSetRepeatMode
nullable. - The Remote Display feature has been deprecated.
- The
minSdkVersion
has been bumped from 14 to 16.
October 26, 2021
Web Receiver 3.0.0102
- Upgrade to Shaka player v3.0.13 (which in turn fixes a number of previously reported issues).
- Added support for secondary images on smart displays and Chromecasts.
- Fixed an issue where captions were not displaying for buffered streams due to an error in logic used to detect duplicate tracks.
-
Fixed an issue where the receiver’s error callback wasn’t fired when
LOAD_BY_ENTITY
returned an error. - Added support for high-efficiency AAC (HE-AAC) audio codecs for transport streams.
-
Fixed a bug where
PlayerManager.getStats()
was not returning the correct values for height and width. -
Removed VAST and VMAP information from
MediaStatus
messages to avoid overflows that can cause a sender to get disconnected from the receiver. -
Fixed a problem where the
endedReason
wasn’t provided to the sender when ads are skipped. - Fixed a problem where ad breaks were getting removed from the load queue before playing.
-
Added a new
cast.framework.message.QueueChange#reorderItemIds
field which contains the list of queue items affected by theQUEUE_CHANGE
operation. - Reduced buffering in HLS live streams in MPL when switching between audio tracks, so audio and video now stay in sync.
- Fixed parsing of HLS streams in MPL with embedded CEA608/CEA708 captions.
- Media controls for Chromecast with Google TV will be hidden when media is paused for more than 5 seconds.
May 26, 2021
iOS Sender 4.6.1
- Fixed a problem where backgrounded Cast sessions are suspended for applications that allow background execution.
May 17, 2021
iOS Sender 4.6.0
- Changed the default behavior of the Cast button to always display when connected to Wi-Fi.
- Added a new help dialog which displays when the user taps on the Cast button and no devices are found.
-
Deprecated
GCKUICastButton::triggersDefaultCastDialog
API. -
Added more uniform support for dialog customization for those apps that
implement a custom UI through the new API
GCKUICastButtonDelegate
. - Added dark mode support for iOS 13 and above.
-
Added ad marker customization to
GCKUIStyleAttributes
. -
Added support for
hlsSegmentFormat
andhlsVideoSegmentFormat
to media. - Bug fixes and performance improvements.
April 29, 2021
Web Receiver 3.0.0096
April 20, 2021
Android Sender 20.0.0 and Android TV Receiver 18.0.0
-
Released play-services-cast:20.0.0 and
play-services-cast-framework:20.0.0.
- Deleted GameManager and related APIs. They have been deprecated since 2017.
-
Added the
SessionState
class to the cast client library. -
Added
CastReasonCodes
to provide detailed explanations ofCastStatusCodes
. Use theCastContext#getCastReasonCodeForCastStatusCode(int)
method to translate fromCastStatusCodes
toCastReasonCodes
. -
Added
HlsSegmentFormat
andHlsVideoSegmentFormat
toMediaInfo.Builder
. -
Marked the
foregroundServiceType
ofMediaNotificationService
to bemediaPlayback
. -
Updated the dependencies on
com.google.android.datatransport:transport-api
to the latest version. -
Added a
MediaLoadRequestData.Builder
constructor to build from aMediaLoadRequestData
object. - Fixed an issue with the play/pause button on the mini player when switching from VOD to LIVE stream.
-
Implemented the
MediaIntentReceiver#ACTION_DISCONNECT
for Cast media notifications.
-
Released play-services-cast-tv:18.0.0:
-
Added the
StoreSessionRequestData
class and theStoreSessionResponseData
class to the cast-tv library.
-
Added the
April 5, 2021
Web Receiver 3.0.0095
- Upgraded Shaka Player to 3.0.10.
-
The Cast Button is now shown by default when the
STREAM_TRANSFER
media command is supported. - Added Suggestions Bar to the bottom of the Media Browse UI. The Suggestion Bar contains interactive chips that when selected can play a media item or scroll through the available media items. Each chip also maps to an available Google Assistant command. Suggestion Chips are currently only supported when the system language is set to English or Japanese.
- Fixed a bug in Chromecast with Google TV where the media controls overlay was displayed when casting photo content to the default receiver.
- Added support for
TRACKS_CHANGED
event.
December 18, 2020
Web Receiver 3.0.0085
-
Added options to
CastReceiverOptions
to disable loading of Shaka and MPL.
December 3, 2020
iOS Sender 4.5.3
-
Fixed load-time error "Undefined symbols for architecture arm64" for
GCKCredentialsData
. -
Fixed compiler error for conflicting nullability on
GCKCredentialsData
. -
Warning messages are now logged if the required Bonjour service entries
are missing from
Info.plist
.
November 4, 2020
iOS Sender 4.5.2
-
Updated the minimum version of
Protobuf
library to 3.13 in CocoaPods. Usage of previousProtobuf
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
Web Sender
- Introduced Cast Connect, which enables Chrome apps to cast to Android TV apps. For details, see the Android TV Receiver documentation.
August 31, 2020
Web Receiver
- Added support for #EXT-X-DATERANGE in HLS / EventStream in DASH.
August 3, 2020
iOS sender 4.4.8
- Introduced Cast Connect, which enables iOS apps to cast to Android TV apps. For details, see the Android TV Receiver documentation.
July 29, 2020
Android Sender 19.0.0 and Android TV Receiver 17.0.0
-
Introduced Cast Connect, which allows Android TV apps
to be compliant to the Cast protocol so that they behave as Receiver
apps. For details, see the
Android TV Receiver documentation.
- Released play-services-cast-tv:17.0.0 as the receiver SDK for Android TV apps.
- Released play-services-cast:19.0.0 and play-services-cast-framework:19.0.0, including Cast Connect sender APIs and APIs used by play-services-cast-tv.
-
API updates:
-
Deprecated
AdBreakStatus#AD_BREAK_CLIP_NOT_SKIPPABLE
, useAdBreakClipInfo#AD_BREAK_CLIP_NOT_SKIPPABLE
instead. -
Renamed
CastRemoteDisplayLocalService#getDisplay()
toCastRemoteDisplayLocalService#getCastRemoteDisplay()
to avoid an API conflict on Android 11. -
Added
getCustomData()
andgetType()
inMediaError
. -
Added detailed supported command bit constants (
MediaStatus#COMMAND_*
) inMediaStatus
. -
Exposed
MediaTrack#getRoles()
. -
Exposed
RemoteMediaClient.Callback#onMediaError()
.
-
Deprecated
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
todeviceCapabilities
. - 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
-
Added pre-defined constants for
MediaError
detailed error codes and error reasons.
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
- Added support for session key prefetching. See the HTTP Live Streaming 2nd Edition draft for more information.
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
todeviceCapabilities
. 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 toGCKAdBreakStatus
. - UI fixes for Ads and iOS 13.
September 11, 2019
Android Sender 17.1.0
-
Added
MediaError
field to RemoteMediaClient.MediaChannelResult that can be used to access the detailed error code for failed media commands. -
The
MediaStatus.COMMAND_SKIP_FORWARD
andMediaStatus.COMMAND_SKIP_BACKWARD
are deprecated. Apps should useMediaStatus.COMMAND_QUEUE_NEXT
andMediaStatus.COMMAND_QUEUE_PREVIOUS
instead. -
Added a new dependency on
com.google.android.datatransport:transport-api:2.0.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 thecast.framework.messages
namespace. -
Updated the default UI audio title so that
metadata.artist
takes precedence overmetadata.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 thecast.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
Web Sender
- Web Sender now uses the new Custom Elements v1 syntax. This version replaces v0, which has been deprecated.
-
Fixed changed events for
breakTime
,breakClipTime
, andliveSeekableRange
, using new thegetEstimatedBreakTime
,getEstimatedBreakClipTime
, andgetLiveSeekableRange
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
MediaFinishedEvent
s. - 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.
Web 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()
withcustomElements.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.