对于发布的每个新版 Google Cast,以下内容会介绍相应变更,并更新 API 参考文档。如需了解设计核对清单的变更,请参阅其changelog。
2025 年 11 月 3 日
Web Receiver 3.0.0147
预计完成推出时间:2025 年 12 月 1 日
主要变更:
- CAF 使用的默认 Shaka Player 版本已从 4.9.2 更新为 4.15.12。如需查看完整的变更列表,请参阅 Shaka Player changelog。
 - 将默认 
useShakaForHls更改为true,使 Shaka 成为所有播放的默认播放器。应用仍然可以选择退出。请参阅 Shaka Player 上的 HLS 迁移 - 向 
CastReceiverContext添加了元数据 APIgetDeviceInformation() 
其他变更:
- 修复了文本轨道从一个已加入队列的项目持续到下一个项目的问题
 - 在 CAF 响应处理程序中提供完整的 Shaka 请求对象
 - 停止为较新的 Shaka 版本设置默认 
availabilityWindowOverride - 将 
playerErrorCode和severity字段添加到ErrorData - 修复了由意外运行时错误触发的加载时未解决的 promise
 - 修复了某些 HLS 负载均衡场景下的音轨问题
 - 修复了杜比视界编解码器支持的检测
 - 修复了从 CAF 发送到 Shaka Player 的默认 DRM 鲁棒性设置
 - 修复了 preloadTime 未定义时的队列行为
 - 修复了广告失败时播放器重置的问题
 - 修复了播放之间 Shaka Player 实例的缓存
 - 通过从 CAF 传递 MIME 类型来避免 Shaka Player 中的 HEAD 请求
 - 修复了新版 Shaka 中的轨道更改事件与 CAF 中的等效事件之间的不良互动
 - 公开 
getRawSeekableRange()以与getRawCurrentTimeSec()保持一致。 - 修复了 Shaka Player 的默认 DRM 鲁棒性设置:基于 Android 的设备为 Widevine L1,所有其他设备为系统默认设置
 
2025 年 10 月 20 日
Android Sender 22.2.0
- 
        添加了智能设备建议 API,该 API 会向已注册的应用发送 Cast 设备建议,以便用户更轻松地通过一键转移功能发起投屏会话。此功能要求设备搭载 Android 14(API 级别 34)或更高版本的系统。
        
- 
            通过 
DeviceSuggestions#getClient()访问 API。 - 
            
DeviceSuggestionsClient#requestDeviceSuggestions(),用于请求设备建议。 - 
            
DeviceSuggestionsClient#registerCallback(...)用于在有新设备显示为建议或之前的建议过期时接收通知,以及DeviceSuggestionsClient#unregisterCallback(...)用于取消注册回调。 - 
            
DeviceSuggestionsClient#clearClientData()移除设备建议所依据的应用数据。 
 - 
            通过 
 
2025 年 10 月 7 日
iOS Sender 4.8.4
- 在发送方添加了界面,供用户阅读并批准 Cast 服务条款和隐私权政策。
 - iOS SDK 支持的最低版本现在为 iOS 15。
 - 自 4.3.1 版以来,Cocoapods 默认发布静态库。从版本 4.8.4 开始,此静态库包含 Protobuf 库。我们建议您使用静态库,以避免 Protobuf 出现潜在的版本兼容性问题。不过,您也可以改为下载动态库。
 - 
        请注意,当 
GCKErrorCode为GCKErrorCodeCancelled时,投屏失败和断开连接是预期行为。确保您的应用不会在因GCKErrorCodeCancelled导致投屏失败或断开连接时自动重试投屏,因为如果用户拒绝服务条款,这可能会导致意外行为。 
2025 年 5 月 12 日
Android Sender 22.1.0
- 
        发布了 play-services-cast:22.1.0 和 play-services-cast-framework:22.1.0
        
- 
            更新为依赖于 androidx.mediarouter:mediarouter:1.8.0-beta01,并支持 AndroidX Media Router 
MediaRouter.RouteInfo#connect()和MediaRouter.RouteInfo#disconnect()API。 - 
            添加了 
CastOptions.Builder以设置 AndroidX Media RouterMediaRouterParams.Builder#setMediaTransferRestrictedToSelfProviders(boolean)API。 
 - 
            更新为依赖于 androidx.mediarouter:mediarouter:1.8.0-beta01,并支持 AndroidX Media Router 
 
2024 年 10 月 28 日
Android 发送器 22.0.0 和 Android TV 接收器 21.1.1
- 修复了在 Protobuf Java Lite 库中发现的潜在拒绝服务漏洞。
 - 删除了 MediaNotificationService。应用不应直接使用它。
 - 修复了搭载 Android R 或更低版本的设备上存在的一个 bug,该 bug 会导致尝试在 Google Cast 通知中显示过小的图片时出现系统界面崩溃。
 
2024 年 9 月 4 日至 2024 年 11 月 1 日
    
      Web Receiver 3.0.0133 3.0.0135 3.0.0137
    
- CAF 使用的默认 Shaka Player 版本已从 4.3.4 更新为 4.9.2。如需查看完整的变更列表,请参阅 Shaka Player changelog。
 - 为 Shaka 播放器启用了内容预加载。这样一来,便可在媒体项或广告插播之间实现无缝切换。
 - 修复了由 Shaka 切换编解码器引起的错误。
 - 为 Shaka 错误添加了新字段 
ErrorSeverity。如果严重程度为RECOVERABLE,播放不应停止。 - 修复了并发加载请求的内容加载失败问题。
 - 在内部,CAF 现在使用 
shaka.Player#attach附加媒体元素,而不是将媒体元素传递给shaka.Player构造函数(在 Shaka API 中已弃用)。 - 向 
cast.framework.events.Id3Event添加了frameType和frameDescription字段。当使用 Shaka Player 进行播放时,系统会填充这些字段。 - 添加了 
REQUEST_GET_STATUS和REQUEST_PRELOAD事件。可以使用PlayerManager#addEventListener监听这些事件。 - 针对 
requestId不正确的加载请求添加了错误响应,而不是静默失败。 - 修复了 Shaka Player 
jumpLargeGaps配置的警告日志,该配置已在 Shaka v4 中弃用。 - 开始在 
LOADING状态的MediaStatus消息中填充requestId。 - 在加载新内容时回收 Shaka 播放器实例。
 - 不再支持已弃用的 
QUEUE_SHUFFLE媒体命令。请改用QUEUE_UPDATE。 - 修复了对 VAST 广告插播序列的支持,其中每个 
<Ad>代码都具有sequence属性和嵌套的<Wrapper>代码。 - 修复了从 
<cast-media-player>到嵌套<video>元素的没有值的crossorigin属性的固定传播。 - 在 MPL 中公开了带内音频语言。
 
2024 年 8 月 22 日
iOS Sender 4.8.3
- 修复了以下 bug:在收到点按操作时,投屏按钮不会打开设备选择器。
 - 修复了与 AVRouting 相关的崩溃问题,该问题会影响运行 iOS 17 及更高版本的设备。
 
2024 年 4 月 18 日
iOS Sender 4.8.1
- Cast SDK 现在支持的最低版本为 iOS 14。
 - 软件包中包含的隐私清单以及已签名的 xcframework。
 - 访客模式已被弃用并移除。从该版本开始,您将可以集成单一风味的 SDK。
 - 修复了在投放时有时播放短广告时发生的崩溃问题。
 
2023 年 12 月 11 日
Web Receiver 3.0.0122
- 为 VAST 添加了对广告插播和广告自助餐的支持。
 - 更新了 Google TV 设备的 Cast 播放器媒体控件界面。
 - 向 
Track对象添加了新的audioTrackInfo字段。 - 添加了 
cast.framework.system.Message,表示从发件人处收到的或发送给发件人的消息。 - 更改了搜索中断逻辑。现在,仅当从 
BreakManager#setBreakSeekInterceptor返回的广告插播时间点超过 1 个时,Web 接收器才会创建合成的seek-{timestamp}插播时间点;否则,搜索插播时间点将保持与时间轴上的原始插播时间点相同。 - 添加了 
CastReceiverOptions#shakaVariant选项,用于在 CAF 中加载 Shaka Player 的调试版本。 - 
        修复了以下问题:使用 AES-128 加密时,Shaka 无法识别 HLS 的 
PlaybackConfig#licenseRequestHandler和PlaybackConfig#licenseResponseHandler。 - 修复了使用 Shaka Player 时 
ID3Event未触发的问题。 - 修复了使用前贴片广告时旁加载的文本轨道。
 - 修复了使用 
UITextDisplayer时的文本渲染问题。 - 修复了 VAST、MIME 类型和内容保护系统名称的各种区分大小写问题。
 - 修复了强制字幕方面的各种问题。
 - 修复了为 
BREAK_CLIP_ENDED事件填充EndedReason代码的问题。 
2023 年 12 月 4 日
Android 发送方 21.4.0 和 Android TV 接收方 21.0.1
- 
        发布了 play-services-cast:21.4.0 和 play-services-cast-framework:21.4.0
        
- 将 minSdkVersion 从 16 提高到 19。
 - 
            更新为依赖 androidx.mediarouter:mediarouter:1.6.0-beta01。这会使 
MediaRouteButtons默认始终处于可见状态。这样可以减少在没有用户操作的情况下自动启动 Cast 设备发现功能的场景。 - 
            添加了 
CastOptions.Builder#setSessionTransferEnabled,用于设置在启用输出切换器时,发送方应用是否应显示 Cast 设备。默认值为 true。 - 
            如果应用未设置 
CastMediaOptions或将 CastMediaOptions 设置为 null,则不再创建MediaSessions。 - 
            修复了使用 
FragmentContainerViews时可能会发生的MiniControllerFragmentandroid.view.InflateException错误。 - 
            添加了 
CastButtonFactory#setUpMediaRouteButton的新版本,这些版本会返回Tasks,应用可以监听该对象以了解成功或抛出的异常。不接受Executor实参的旧版本会忽略 ModuleUnavailableExceptions 并静默失败。 
 - 
        发布了 play-services-cast-tv:21.0.1
        
- 将 minSdkVersion 从 16 提高到 19。
 - 此版本包含质量改进
 
 
2023 年 7 月 20 日
iOS Sender 4.8.0
- iOS SDK 支持的最低版本现在为 iOS 13。
 - 首个稳定的 XCFramework 版本。
 - 通过 Cocoapods 提供的 XCFramework。
 - 恢复了在媒体播放期间使用实体音量按钮控制音量的功能。
 - 在导航栏中使用时,投屏按钮现在会遵循色调颜色。
 - 现在可以使用 GCKUIStyle API 自定义导航栏标题颜色。
 - 修复了媒体轨道字幕列表视图中的透明导航栏问题。
 - 修复了 XCFramework Beta 版中的崩溃问题。
 - 添加了用于将 UIControl 与快进或快退操作绑定的 API。
 - 为 Pixel 平板电脑添加了投屏支持。
 
2023 年 7 月 6 日
Web Receiver 3.0.0111
- 
        添加了对使用 
BreakManager、addBreak(breakData, breakClips, broadCastMediaStatus)和removeBreakById(breakId)进行动态广告插播的支持。 - 
        向 Smooth 清单添加了 
Subtype字符串解析功能。 - 
        为 Shaka Player 添加了对 
manifestRequestHandler、segmentRequestHandler和licenseRequestHandler中的异步请求的支持。 - 添加了对强制字幕的支持。
 - 将 CAF 的默认 Shaka 版本提升至 v4.3.4。
 - 
        阐明了 
setActiveByIds参数说明。 - 修正了 CAF 选择不同音轨的方式。
 - 针对 Shaka 请求过滤条件修正了请求正文类型转换。
 - 
        添加了查询与 
BreakManager中的BreakClip相关的CreativeInformation的功能。getCreativeInfoByClipId(breakClipId)。 - 修复了在 D-Pad 控制的设备上加载媒体元素期间媒体元数据缺失的问题。
 - 
        向 
BreakClip添加了属性hlsSegmentFormat和hlsVideoSegmentFormat。 . - 修复了使用 MPL 的区分大小写的 MIME 类型比较。
 - 修复了使用 Shaka Player 时加载直播 HLS(基于 TS)时出现的无限缓冲问题。
 - 
        修复了 
IS_AT_LIVE_EDGE_CHANGED事件的PlayerDataBinder行为。 - 修复了使用 MPL 时,在 TS 段中提供的数据不足时出现的无限循环问题。
 - 
        为 Shaka Player 错误添加了 
error.stack。 - 
        已更改为使用 Shaka Player 的轨道对象中的 
audioMimeType字段(而非audioCodec)来填充变体轨道的cast.framework.messages.Track.trackContentType字段。 - 
        为 Shaka Player 轨道添加了 
shaka.extern.track.label到cast.framework.messages.Track.name。 - 
        扩展了 
cast.framework.stats.Stats对象,以考虑shaka.extern.Stats中的现有字段。 - 修复了包含扩展嵌入式广告插播的内容的媒体时间计算问题。
 
2023 年 3 月 28 日
Android 发送器 21.3.0 和 Android TV 接收器 21.0.0
- 
        发布了 play-services-cast:21.3.0 和 play-services-cast-framework:21.3.0
        
- 
            现在使用 
NotificationManager发布 Cast 媒体通知,而不是Foreground Service。 - 
            新增了 
CastReasonCodes#CAST_CANCELLED以指示正在取消的 Cast 会话。 
 - 
            现在使用 
 - 
        发布了 play-services-cast-tv:21.0.0
        
- 修复了 
MediaManager的可为 null 性注解。 
 - 修复了 
 
2022 年 10 月 17 日
Web Receiver 3.0.0105
- 将 Shaka 播放器升级到了版本 3.2.11。
 - 
        添加了 
cast.framework.PlaybackConfig#enableUITextDisplayer,以使用 DOM 在 Shaka Player 中呈现字幕。 - 
        添加了 
cast.framework.CastReceiverOptions#shakaVersion和cast.framework.CastReceiverOptions#useShakaForHls,以允许接收器使用 Shaka Player 进行 HLS 播放。 - 
        
PlaybackConfig#manifestHandler、PlaybackConfig#segmentHandler和PlaybackConfig#licenseHandler现在可以访问 HTTP 响应标头。 - 
        当 
LOAD_BY_ENTITY消息解析为错误时,向CommandAndControlManager#ErrorResponseData添加了customData。 
2022 年 10 月 10 日
Android 发送方 21.2.0
- 
        发布了 play-services-cast:21.2.0 和 play-services-cast-framework:21.2.0
        
- 
            推出了 
Output Switcher功能。 - 
            添加了一个新的 API
Cast.Listener#onDeviceNameChanged(),用于通知stream transfer设备名称的更改。 - 
            废弃了 
CastOptions.Builder#setVolumeDeltaBeforeIceCreamSandwich(double)和CastOptions#getVolumeDeltaBeforeIceCreamSandwich()。 - 
            修复了 
MediaNotificationService的ForegroundServiceStartNotAllowedException。 - 
            使用 
Media controls in System UI更新了MediaNotificationService。 - 
            更新了 
RemoteMediaClientAPI,以接受可为 null 的customData。 - 
            更新了 
MediaInfo.Builder,以接受contentId或contentURL。 - 
            更新了 
ImagePicker#onPickImage以接受可为 null 的MediaMetadata。 - 
            将 
com.google.android.datatransport:transport-api依赖项更新为最新版本。 
 - 
            推出了 
 
2022 年 8 月 8 日
Android 发送方 21.1.0 和 Android TV 接收方 20.0.0
- 
        发布了 play-services-cast:21.1.0 和 play-services-cast-framework:21.1.0
        
- 
            弃用了 
CastContext#getSharedInstance(Context)。请改用CastContext#getSharedInstance(Context, Executor)(返回 Task API)和ModuleUnavailableException来处理 Cast SDK 无法加载内部 Cast 模块时出现的异常。 - 
            弃用了 
ApplicationMetadata#getImages()。请改用ApplicationMetadata#getIconUrl(),该方法会返回在 Cast Developer Console 中设置的应用映像。 - 
            修复了注册和取消注册 
MediaQueue.Callbacks时可能发生的ConcurrentModificationException错误。 - 
            修复了直播的 
MediaInfo#getStreamDuration()。 - 
            修复了 Android S 上 
MediaNotificationService的通知 trampoline 限制。 - 
            修复了 
CastContext泄露对 activity 的引用的问题。 - 修复了以下 bug:在广告期间显示清晰的背景图片,而不是模糊的版本。
 
 - 
            弃用了 
 - 
        发布了 play-services-cast-tv:20.0.0
        
- 将 
minSdkVersion从 14 提升到了 16。 - 
            修复了 
MediaManager#setSessionCompatToken(MediaSession.CompatToken)无法正确支持 null 实参的问题。 
 - 将 
 
2022 年 3 月 31 日
Web Receiver 3.0.0103、MPL 播放器 1.0.0.113
- 将默认的 Shaka 播放器版本升级到了 3.2.2。
 - 
        新增了一个 API 
cast.framework.PlaybackConfig#shakaConfig,用于替换 Shaka 播放器版本和其他 Shaka 选项。 - 
        添加了一个新的 API 
cast.framework.ui.Controls#hasMediaControlsOverlay(),用于查询媒体控件叠加层是否渲染在应用之上。 - 
        为“赞”用户操作添加了新样式 
cast.framework.ui.ControlsButton.LIKE_HEART。 - 
        
cast.framework.events.EventType.BREAK_CLIP_ENDED事件数据的currentMediaTime值现在表示事件发生时最新广告插播片段的当前时间。 - 
        添加了方法 
cast.framework.PlayerManager#getRawCurrentTimeSec,用于返回媒体元素的媒体时间。 - 
        添加了 
cast.framework.NetworkRequestInfo#timeoutInterval以指定播放器请求的 HTTP 请求超时时间。 - 修复了在对解复用的 A/V 流的 CEA 608/708 字幕进行解码时的 MPL bug。
 - 修复了 MPL WebVTT 时间戳解析逻辑,以接受小时值超过 2 位数的情况。
 
2021 年 12 月 9 日
Android Sender 21.0.0
- 通过将 null 安全性违规行为视为错误,为 Kotlin 添加了更好的可为 null 性支持。Java 开发者不会受到影响。如果 Kotlin 开发者有不具备 null 安全性的现有代码,可能会看到新的 build 失败。
 
2021 年 11 月 19 日
iOS Sender 4.7.0
- 修复了使用 ATV 凭据和 Cast Connect 的 iOS 发送器支持。
 - 修复了以下 bug:使用 Xcode 13 构建时,导航栏具有透明背景。
 - 
        修复了 
GCKUICastButton.中报告的无障碍功能问题 - 修复了以下 bug:在 WLAN 和移动网络之间切换时,投屏会话会断开连接,而不是暂停。
 - 已停止支持 iOS10 和 iOS11,因此也停止支持 32 位架构。
 - 修复了其他 bug 并提升了性能。
 
2021 年 11 月 16 日
Android Sender 20.1.0
- 注意:以 Android 12 为目标平台的应用必须更新到 Android Sender 20.1.0,以防止运行时崩溃。
 - 队列改进
 - 
          向 MediaQueue 添加了一个新的 
itemsReorderedAtIndexes回调,该回调会在队列重新排序后被调用。 - 添加了对序列化队列命令的支持。
 - 
        使 
RemoteMediaClient#queueSetRepeatMode中的customData参数可为 null。 - 远程显示功能已被弃用。
 minSdkVersion已从 14 提升到 16。
2021 年 10 月 26 日
Web Receiver 3.0.0102
- 升级到 Shaka 播放器 v3.0.13(这反过来又修复了之前报告的许多问题)。
 - 新增了对智能显示屏和 Chromecast 上的辅助图片的支持。
 - 修复了以下问题:由于用于检测重复轨道的逻辑存在错误,导致字幕未显示在缓冲的视频流中。
 - 
        修复了以下问题:当 
LOAD_BY_ENTITY返回错误时,接收器的错误回调未触发。 - 为传输流添加了对高效率 AAC (HE-AAC) 音频编解码器的支持。
 - 
        修复了 
PlayerManager.getStats()未返回正确的高度和宽度值的 bug。 - 
        从 
MediaStatus消息中移除了 VAST 和 VMAP 信息,以避免可能导致发件人与收件人断开连接的溢出。 - 
        修复了以下问题:跳过广告时,未向发送者提供 
endedReason。 - 修复了以下问题:广告插播时间点在播放之前从加载队列中移除。
 - 
        添加了一个新的 
cast.framework.message.QueueChange#reorderItemIds字段,其中包含受QUEUE_CHANGE操作影响的队列项列表。 - 在 MPL 中切换 HLS 直播流中的音轨时,减少了缓冲,因此音频和视频现在可以保持同步。
 - 修复了 MPL 中对包含嵌入式 CEA608/CEA708 字幕的 HLS 数据流的解析。
 - 当媒体暂停播放超过 5 秒时,Chromecast with Google TV 的媒体控件将被隐藏。
 
2021 年 5 月 26 日
iOS Sender 4.6.1
- 修复了以下问题:对于允许在后台执行的应用,后台 Cast 会话会被暂停。
 
2021 年 5 月 17 日
iOS Sender 4.6.0
- 更改了投屏按钮的默认行为,使其在连接到 Wi-Fi 时始终显示。
 - 添加了一个新的帮助对话框,当用户点按“投放”按钮但未找到任何设备时,系统会显示该对话框。
 - 
        已弃用的 
GCKUICastButton::triggersDefaultCastDialogAPI。 - 
        为通过新 API 
GCKUICastButtonDelegate实现自定义界面的应用添加了更统一的对话框自定义支持。 - 为 iOS 13 及更高版本添加了深色模式支持。
 - 
        向 
GCKUIStyleAttributes添加了广告标记自定义功能。 - 
        为媒体添加了对
        
hlsSegmentFormat和hlsVideoSegmentFormat的支持。 - 修正了一些错误并提升了性能。
 
2021 年 4 月 29 日
Web Receiver 3.0.0096
- 修复了图片投屏功能损坏的 bug。
 
2021 年 4 月 20 日
Android 发送器 20.0.0 和 Android TV 接收器 18.0.0
- 
        发布了 play-services-cast:20.0.0 和 play-services-cast-framework:20.0.0。
        
- 删除了 GameManager 和相关 API。自 2017 年以来,这些方法已被弃用。
 - 
            向 Cast 客户端库添加了 
SessionState类。 - 
            添加了 
CastReasonCodes,用于提供CastStatusCodes的详细说明。使用CastContext#getCastReasonCodeForCastStatusCode(int)方法从CastStatusCodes翻译为CastReasonCodes。 - 
            向 
MediaInfo.Builder添加了HlsSegmentFormat和HlsVideoSegmentFormat。 - 
            将 
MediaNotificationService的foregroundServiceType标记为mediaPlayback。 - 
            将对 
com.google.android.datatransport:transport-api的依赖项更新为最新版本。 - 
            添加了 
MediaLoadRequestData.Builder构造函数,用于从MediaLoadRequestData对象构建。 - 修复了从视频点播切换到直播时迷你播放器上的播放/暂停按钮出现的问题。
 - 
            为 Cast 媒体通知实现了
            
MediaIntentReceiver#ACTION_DISCONNECT。 
 - 
        发布了 play-services-cast-tv:18.0.0:
        
- 
            向 cast-tv 库添加了 
StoreSessionRequestData类和StoreSessionResponseData类。 
 - 
            向 cast-tv 库添加了 
 
2021 年 4 月 5 日
Web Receiver 3.0.0095
- 将 Shaka Player 升级到了 3.0.10。
 - 
        现在,当支持 
STREAM_TRANSFER媒体命令时,系统会默认显示 Cast 按钮。 - 在媒体浏览界面底部添加了建议栏。建议栏包含互动式功能块,选择这些功能块可以播放媒体内容或滚动浏览可用的媒体内容。每个功能块还映射到一条可用的 Google 助理指令。目前,仅当系统语言设置为英语或日语时,才支持建议芯片。
 - 修复了 Chromecast (支持 Google TV) 中的一个 bug,该 bug 会导致在将照片内容投放到默认接收器时显示媒体控件叠加层。
 - 添加了对 
TRACKS_CHANGED事件的支持。 
2020 年 12 月 18 日
Web Receiver 3.0.0085
- 
        添加了 
CastReceiverOptions的选项,以停用 Shaka 和 MPL 的加载。 
2020 年 12 月 3 日
iOS Sender 4.5.3
- 
        修复了 
GCKCredentialsData的加载时错误“Undefined symbols for architecture arm64”。 - 
        修复了 
GCKCredentialsData上可为 null 性冲突的编译器错误。 - 
        如果 
Info.plist中缺少必需的 Bonjour 服务条目,系统现在会记录警告消息。 
2020 年 11 月 4 日
iOS Sender 4.5.2
- 
        在 CocoaPods 中将 
Protobuf库的最低版本更新为 3.13。使用之前的Protobuf版本会导致 SDK 崩溃。 - 此版本仅适用于 CocoaPods,并使用与 v4.5.1 相同的二进制文件。
 
2020 年 10 月 13 日
iOS Sender 4.5.1
- 
        修复了以下问题:带有自定义设备选择器的 
GCKUICastButton未更新以反映正确的 Cast 状态。 - 修复了“返回类型上的可为 null 性说明符存在冲突。”的警告
 
2020 年 9 月 14 日
Web Receiver
- 将 Shaka Player 升级到了 2.5.16。
 
iOS Sender 4.5.0
- 添加了对 iOS 14 中 Cast 设备发现更改的支持,该更改要求在首次投屏时获得用户的明确许可。如需了解详情,请参阅 iOS 14 中的首次投放。
 - 将最低 SDK 支持更新为 iOS 10。
 
2020 年 9 月 8 日
Web Sender
- 推出了 Cast Connect,可让 Chrome 应用将内容投射到 Android TV 应用。如需了解详情,请参阅 Android TV 接收器文档。
 
2020 年 8 月 31 日
Web Receiver
- 在 HLS 中添加了对 #EXT-X-DATERANGE 的支持,在 DASH 中添加了对 EventStream 的支持。
 
2020 年 8 月 3 日
iOS 发送方 4.4.8
- 引入了 Cast Connect,可让 iOS 应用将内容投放到 Android TV 应用。如需了解详情,请参阅 Android TV 接收器文档。
 
2020 年 7 月 29 日
Android 发送器 19.0.0 和 Android TV 接收器 17.0.0
- 
        引入了  Cast Connect,可让 Android TV 应用符合 Cast 协议,从而使其表现得像接收器应用一样。如需了解详情,请参阅 Android TV 接收器文档。
        
- 发布了 play-services-cast-tv:17.0.0,作为 Android TV 应用的接收器 SDK。
 - 发布了 play-services-cast:19.0.0 和 play-services-cast-framework:19.0.0,其中包括 Cast Connect 发送方 API 和 play-services-cast-tv 使用的 API。
 
 - 
        API 更新:
        
- 
            已弃用 
AdBreakStatus#AD_BREAK_CLIP_NOT_SKIPPABLE,请改用AdBreakClipInfo#AD_BREAK_CLIP_NOT_SKIPPABLE。 - 
            将 
CastRemoteDisplayLocalService#getDisplay()重命名为CastRemoteDisplayLocalService#getCastRemoteDisplay(),以避免在 Android 11 上发生 API 冲突。 - 
            在 
MediaError中添加了getCustomData()和getType()。 - 
            在 
MediaStatus中添加了详细的支持命令位常量 (MediaStatus#COMMAND_*)。 - 
            公开
            
MediaTrack#getRoles()。 - 
            公开
            
RemoteMediaClient.Callback#onMediaError()。 
 - 
            已弃用 
 
2020 年 7 月 13 日
Web Receiver
- 改进了默认界面(视频与音频)的媒体类别检测。
 - 添加了对来自 Shaka Player 的实时绝对时间的支持。
 - 修复了 Nest Hub Max 设备上出现的音频故障问题。
 - 将 Shaka Player 升级到 2.5.12。
 
2020 年 5 月 4 日
Web Receiver
- 现在可以配置 Google 助理命令的超时值了。
 - 现在,详细的 MPL 错误代码会在错误事件中公开。
 - 
        现在可以使用 
enforceSupportedCommands标志强制执行受支持的媒体命令。 - 修复了在播放中断期间报告的支持的命令。
 - 修复了与 Google 助理随机播放加载请求相关的问题。
 - 修复了 
getStats值中的 bug。 
2020 年 3 月 12 日
Web Receiver
- 
        向 
deviceCapabilities添加了新的设备功能IS_CBCS_SUPPORTED。 - 将 Shaka Player 升级到了 2.5.8。
 
2020 年 2 月 27 日
iOS Sender v4.4.7
- 修复了不使用 SDK 中任何界面组件的应用的实体音量按钮。
 - 
        修复了以下问题:在展开的控制器中,反复按快进或快退按钮时,
currentTime标签出现问题。 - 
        应用移至后台后,
GCKMediaQueue中的媒体项会保持不变。 - 
        界面自定义更新:
        
- 迷你控制器的进度条现在可自定义。
 - 现在可以自定义 Cast 对话框的导航栏和工具栏的背景颜色。
 - 修复了特定于 iPhone X 的界面问题。
 
 - 修复了导致卡顿和崩溃的几个问题。
 
2020 年 2 月 24 日
Android Sender 18.1.0
- 
        为 
MediaError添加了预定义常量 详细错误代码 和错误原因。 
2020 年 1 月 22 日
Web Receiver
- 修复了以下问题:更改受支持的命令时,会广播多个媒体状态。
 
接收方 v2
- 改进了 VAST 广告的比特率选择。
 
MPL
- 添加了对会话密钥预提取的支持。如需了解详情,请参阅 HTTP Live Streaming 第 2 版草稿。
 
2020 年 1 月 7 日
Web Receiver
- 
        在 
cast.framework.events.EmsgEvent中添加了对 ID3 定时元数据的支持。此外,现在会针对 HLS/CMAF 内容调度EmsgEvent。 - 
        修复了以下问题:在过渡到新的媒体会话时,
PLAYER_LOAD_COMPLETE期间缺少播放器数据。 - 修复了媒体图标与中断片段编号和倒计时重叠的问题。
 - 修复了第一个广告插播片段的倒计时始终显示 0:00 的问题。
 - 将 Shaka Player 升级到了 2.5.6。
 
Web Receiver v2
- 
        向 
deviceCapabilities添加了新的设备功能IS_DEVICE_REGISTERED。如果设置,则会在 Cast Developer Console 中注册 Cast 设备以进行调试。 - 修复了加载停滞问题。
 - 现在,系统会针对队列中每个失败的媒体项发送单独的媒体错误消息。
 
MPL
- 修复了直播存在的问题,即在收到停止消息后,音频会继续播放一段时间。
 - 修复了以下问题:在质量级别更改期间,视频压缩伪影会显示出来。
 - 修复了使用 *.m4s 片段的 HLS 流失败的问题。
 
2019 年 12 月 5 日
Android Sender 18.0.0
- 
        添加了 
          
setMediaSessionEnabled,供开发者启用和停用由 Cast SDK 创建的媒体会话。 - 更改了媒体通知在 Cast 会话期间的显示方式。如果媒体通知已启用,则在投屏会话期间始终会显示该通知。 以前,此通知仅在应用处于后台时显示。
 - 
        更改了一些媒体相关类,以实现 
          
Parcelable接口。 
2019 年 11 月 11 日
iOS Sender v4.4.6
- 修复了与 iOS 9 的最低支持版本相关的问题。
 
2019 年 10 月 7 日
Web Receiver
- 公开了轨道角色作为轨道元数据的一部分。
 - 将 Shaka Player 版本升级到了 2.5.5。
 
2019 年 9 月 23 日
iOS Sender v4.4.5
- 改进了对 Cast 设备发现和会话管理的支持。
 - 
        向 
GCKMediaStatus添加了新的媒体命令。 - 
        向 
GCKAdBreakStatus添加了whenSkippable属性。 - 修复了广告和 iOS 13 的界面问题。
 
2019 年 9 月 11 日
Android 发送方 17.1.0
- 
        向 
          RemoteMediaClient.MediaChannelResult 添加了 
MediaError字段,该字段可用于访问失败的媒体命令的详细错误代码。 - 
        废弃了 
          
MediaStatus.COMMAND_SKIP_FORWARD和MediaStatus.COMMAND_SKIP_BACKWARD。应用应改用MediaStatus.COMMAND_QUEUE_NEXT和MediaStatus.COMMAND_QUEUE_PREVIOUS。 - 
        添加了对 
com.google.android.datatransport:transport-api:2.0.0的新依赖项。 
2019 年 9 月 9 日
Web Receiver
- 
        
TV_SHOW元数据类型现在在默认播放器中具有“接下来播放”预览功能(如果下一个项已预加载)。 - 
        向 
cast.framework.messages命名空间添加了ContentRating类。 - 
        更新了默认界面音频标题,使 
metadata.artist优先于metadata.albumArtist。 - 添加了对负 startTime 值的支持,以指示相对于内容结束或直播边缘的开始时间。
 - 媒体浏览:
 - 媒体浏览抽屉现在会在用户处于非活动状态 30 秒后自动隐藏。
 - 在媒体浏览叠加层的右上角添加了“播放/暂停”按钮和媒体项缩略图。
 - 更新了媒体浏览列表行为。现在,每次设置媒体浏览内容时,水平滚动都会重置为初始的最左侧位置。
 - 修复了以下问题:
 - 
          延迟解析 
BasePlayer结束 promise,以允许触发媒体元素事件。 - 处理了广告预加载的加载错误。
 - 水印现在会与其余元数据一起显示。
 - 
          Chromecast 上的默认音频界面会遵循 
.progressBar样式。 - 消除了在加载之前和播放后续媒体项之间出现的空闲屏幕闪烁问题。
 - 修复了 Dash 内容的搜索停顿问题。
 
Web Receiver v2
- 
        向 
cast.receiver.media命名空间添加了ContentRating类。 - 修复了以下 bug:当队列中有多个项时,错误数据传播不正确。
 
媒体播放器库
- 向 API 添加了 HLS #EXT-X-MEDIA 属性。
 - 修复了以下问题:
 - 修复了以下问题:失败的 SourceBuffer remove() 操作会导致音频轨道切换崩溃播放。
 - 修复了以下解析问题:当指定了打包音频格式类型(例如 *.ec3)但使用了基于 MPEG-4 的片段(例如 *.mp4、*.mp4a 等)时,会发生解析问题。
 - 修复了 HLS 问题,即带内 CEA608 字幕的显示存在明显的延迟。
 - 修复了以下问题:没有音频的 HLS 和 Smooth 内容无法加载。
 
2019 年 8 月 27 日
Web Sender
- Web 发送方现在使用新的自定义元素 v1 语法。此版本取代了已弃用的 v0。
 - 
        修复了 
breakTime、breakClipTime和liveSeekableRange的更改事件,使用了添加到 Chrome M77 中的新函数getEstimatedBreakTime、getEstimatedBreakClipTime和getLiveSeekableRange。 
2019 年 8 月 12 日
iOS Sender v4.4.4
- 改进了 iOS 13 上的体验。
 - 改进了对 Cast 设备发现的支持。
 
2019 年 7 月 30 日
Web Receiver
- 将 Shaka Player 版本升级到了 2.5.1。
 - 修复了以下问题:在内容加载期间,元数据叠加层消失得太快。
 - 修复了加载拦截器中对拒绝的处理,以清除加载状态。
 - 将 
setBrowseContent更新为可为 null。 - 修复了以下问题:在广告插播时段内进行搜索时,报告的当前时间不正确。
 - 添加了对 ignoreTtmlPositionInfo 的支持,以忽略 TTML 字幕定位。
 - 改进了对加载错误的处理支持:
 - 避免触发多个 
MediaFinishedEvent。 - 触发了媒体管理器错误回调,以在加载错误时清除播放器。
 
2019 年 7 月 22 日
iOS 发送方 v4.4.3
- 通过提供 error_reason 改进了对加载错误的处理支持。
 - 发布了不含 Guest 模式的 SDK 版本。
 
2019 年 6 月 17 日
Android 发送方 17.0.0
- 最新 SDK 从 Android 支持库切换到 Jetpack (AndroidX) 库。除非您在应用中进行以下更改,否则库将无法正常运行:
 - 
          将 
com.android.tools.build:gradle升级到 3.2.1 版或更高版本。 - 将 
compileSdkVersion升级到 28 或更高版本。 - 更新您的应用以使用 Jetpack (AndroidX)。请按照迁移至 AndroidX 中的说明操作。
 - 如需了解详情,请参阅 Google API for Android 版本说明。
 
2019 年 6 月 10 日
Web Receiver
- 引入了对媒体浏览的支持,这是一项用于在智能显示屏上发现内容的新功能。
 - 在默认界面中为 9 个新语言区域添加了本地化内容:
 - 丹麦语
 - 英语(英国)
 - 英语(印度)
 - 英语(新加坡)
 - 法语(加拿大)
 - 意大利语
 - 挪威语
 - 荷兰语
 - 瑞典语
 - 从远程界面的专辑封面中移除了圆角。
 - 修复了直播和其他方面的问题。
 
iOS Sender v4.4.2
- 访客模式
 - 添加了对 Cast 开发者控制台中的“启用访客模式”选项的支持。
 - 修复了访客模式会话管理问题。
 - bug 修复
 - 修复了 v4.4.1 中引入的本地化问题。
 
2019 年 4 月 24 日
iOS 发送者 v4.4.1
- 引入了对直播的 Alpha 版支持。如需了解详情,请参阅开发者指南。
 - 为直播状态添加了新的数据结构和属性。
 - 添加了新的 GCKMediaMetadata 键。
 - 添加了直播媒体命令:
 - [GCKRemoteMediaClient loadMediaWithLoadRequestData:]
 - [GCKRemoteMediaClient seekWithOptions:]
 - 改进了展开的控制器界面,以支持直播:
 - 更改了展开控制器的布局和外观。
 - bug 修复
 - 修复了 iPhone X 上 GCKUICastContainerViewController 的底部。
 - 修复了操作系统执行大量网络活动时的重新连接问题。
 - 修复了使用 GCKUICastButton 进行无障碍标签初始化时发生的崩溃。
 
2019 年 4 月 23 日
Web Receiver
- 引入了对直播的 Alpha 版支持。如需了解详情,请参阅开发者指南。
 - 更新了界面,以支持直播(包括直播指示器)。
 - 向媒体状态添加了 mediaCategory 字段,以指明媒体是视频、音频还是照片。
 - bug 修复
 - 修复了对 playbackConfig.segmentHandler 返回值的使用。
 
媒体播放器库
- 在 MPL 中为 HLS 添加了 HEVC 编解码器支持。
 
Web Sender
- 引入了对直播的 Alpha 版支持。如需了解详情,请参阅开发者指南。
 - 引入了对广告的支持。如需了解详情,请参阅开发者指南。
 - 为可跳过的广告添加了 RemotePlayerController.skipAd()。
 
Android Sender 16.2.0
- 引入了对直播的 Alpha 版支持。如需了解详情,请参阅开发者指南。
 - 为直播状态添加了新的数据结构和属性。
 - 添加了新的 MediaMetadata 键。
 - 添加了直播媒体命令:
 - RemoteMediaClient#load(MediaLoadRequestData)
 - RemoteMediaClient#seek(MediaSeekOptions)
 - 改进了展开的控制器界面,以支持直播:
 - 为展开的控制器界面 widget 添加了直播支持。
 - 更改了展开控制器的布局和外观。
 - 引入了与直播兼容的 CastSeekBar widget,以替换原生 SeekBar。
 - 修改了 ExpandedControllerActivity,使其使用 CastSeekBar 而不是 SeekBar,以实现直播兼容性。 ExpandedControllerActivity#getSeekBar() 现已弃用,并将返回一个虚拟实例。
 - 添加了新的 MediaStatus#PLAYER_STATE_LOADING 播放器状态:
 - 当 Web 接收器开始加载媒体时,MediaStatus 中的 playerState 属性会设置为 MediaStatus#PLAYER_STATE_LOADING,直到开始缓冲或播放内容为止。
 - 在大多数情况下,应用会以处理 MediaStatus#PLAYER_STATE_BUFFERING 的相同方式处理此状态。
 - 缓冲和加载状态并不总是可以互换。
 - 在加载期间,Web 接收器尚未解析所有媒体信息,因此唯一可用的媒体信息是发送者的加载媒体请求中包含的信息。
 - 在缓冲期间,媒体信息可能包含接收方解析的其他信息。
 - 修改了 MediaMetadata 以支持有声读物:
 - 添加了新的 MediaMetadata 键。
 - 为有声读物添加了新的元数据类型。
 
2019 年 3 月 25 日
Web Receiver
- 
        将 
document.registerElement()的使用替换为customElements.define(),以使 Web 接收器 SDK 与较新版本的 Cast 平台兼容。 - 
        
          
MediaStatus.breakStatus现在,如果内容存在广告插播时间点,但当前未播放广告插播时间点,则会返回一个空对象。 - 修复了内嵌 VAST 代码解析问题。
 
媒体播放器库
- 修复了切换音轨时出现约 20 秒延迟的问题。
 
2019 年 2 月 13 日
Web Receiver
- 修复了 Touch 界面中“跳过广告”按钮突然出现的问题。
 - 修复了在遥控器上显示中断信息的问题。
 
媒体播放器库
- 修复了预加载媒体的 licenseUrl 处理问题。
 
2019 年 2 月 5 日
iOS Sender v4.3.5
- 添加了对有声读物元数据的支持,如需了解详情,请参阅 GCKMediaMetadata.h。
 - 在 podspec 上为 static_framework 设置正确的值。
 - 在 连接控制器中拆分导航栏和工具栏的 styleAttributes。
 - bug 修复
 - 修复了在某些数据库初始化失败时发生的崩溃。
 - 修复了在来电或闹铃响铃期间 Web 接收器音量条出现的问题。
 - 修复了在发现期间冗余调用某些委托方法的问题。
 - 修复了以下问题:媒体队列列表在队列中的最后一项播放完毕后不会清除。
 - 禁止在网络不可用时显示无法访问的附近设备。
 - 针对无法控制音量的设备,停用了设备视图控制器上的音量滑块。