对于发布的每个新版 Google Cast,下文都会介绍相关变更,并更新 API 参考文档。如需了解设计核对清单的变更,请参阅其更新日志。
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。应用不应直接使用此 API。
- 修复了以下 bug:在搭载 Android R 或更低版本的设备上,尝试在 Google Cast 通知中显示尺寸过小的图片可能会导致系统界面崩溃。
2024 年 9 月 4 日 2024 年 11 月 1 日
网络接收器 3.0.0133 3.0.0135 3.0.0137
- CAF 使用的默认 Shaka Player 版本已从 4.3.4 更新为 4.9.2。如需查看完整的变更列表,请参阅 Shaka Player 更新日志。
- 为 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 中废弃。 - 开始在
MediaStatus
消息中为LOADING
状态填充requestId
。 - 在加载新内容时回收 Shaka 播放器实例。
- 不再支持已废弃的
QUEUE_SHUFFLE
媒体命令。请改用QUEUE_UPDATE
。 - 修复了对 VAST 广告连播的支持,其中每个
<Ad>
代码都具有sequence
属性和嵌套的<Wrapper>
代码。 - 修复了从
<cast-media-player>
到嵌套<video>
元素的crossorigin
属性传播(无值)。 - 在 MPL 中公开带内音频语言。
2024 年 8 月 22 日
iOS 发件人 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 接收器 3.0.0122
- 添加了对 VAST 的广告连播和广告轮播的支持。
- 更新了 Google TV 设备的 Cast 播放器媒体控件界面。
- 向
Track
对象添加了一个新的audioTrackInfo
字段。 - 添加了
cast.framework.system.Message
,表示从发件人收到或发送给发件人的消息。 - 更改了跳转插播逻辑。现在,只有当
BreakManager#setBreakSeekInterceptor
返回多个广告插播时,Web 接收器才会创建合成seek-{timestamp}
广告插播,否则,跳转广告插播将保持与时间轴上的原始广告插播相同。 - 添加了
CastReceiverOptions#shakaVariant
选项,用于在 CAF 中加载 Shaka Player 的调试版本。 -
修复了使用 AES-128 加密时 Shaka for 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
时可能会发生的MiniControllerFragment
android.view.InflateException
错误。 -
添加了返回
Tasks
的新版CastButtonFactory#setUpMediaRouteButton
,应用可以监听Tasks
以便了解是否成功或是否抛出异常。不接受Executor
参数的旧版本会忽略 ModuleUnavailableException 并静默失败。
-
发布了 play-services-cast-tv:21.0.1
- 将 minSdkVersion 从 16 提高到了 19。
- 此版本进行了质量改进
2023 年 7 月 20 日
iOS Sender 4.8.0
- iOS SDK 现在支持的最低版本为 iOS 13。
- 第一个稳定版 XCFramework。
- 通过 Cocoapods 提供的 XCFrameworks。
- 恢复了在媒体播放期间使用实体音量按钮控制音量的功能。
- 投放按钮现在在导航栏中使用时会遵循着色颜色。
- 现在,您可以使用 GCKUIStyle API 自定义导航栏标题颜色。
- 修复了媒体轨道字幕列表视图中的透明导航栏问题。
- 修复了 XCFramework Beta 版中的崩溃问题。
- 添加了一个 API,用于将 UIControl 绑定到快进或快退操作。
- 为 Pixel Tablet 添加了投屏支持。
2023 年 7 月 6 日
Web 接收器 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
getCreativeInfoByClipId(breakClipId)
中查询与BreakClip
相关的CreativeInformation
的功能。 - 修复了在使用方向键控制的设备上加载媒体元素时缺少媒体元数据的问题。
-
向
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 曲目向
cast.framework.messages.Track.name
添加了shaka.extern.track.label
。 -
展开了
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 接收器 3.0.0105
- 将 Shaka Player 升级到了版本 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 Sender 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
。 -
更新了
RemoteMediaClient
API 以接受可为 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 接收器 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 添加了更好的可空性支持。Java 开发者不会受到影响。如果 Kotlin 开发者有现有代码不安全,则可能会看到新的构建失败。
2021 年 11 月 19 日
iOS Sender 4.7.0
- 修复了 iOS 发送器支持,以便将 ATV 凭据与 Cast Connect 搭配使用。
- 修复了以下 bug:使用 Xcode 13 构建时,导航栏具有透明背景。
-
修复了与
GCKUICastButton.
相关的无障碍功能问题 - 修复了在 Wi-Fi 和移动网络之间切换会断开投放会话,而不是暂停会话的 bug。
- 不再支持 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 接收器 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(支持 Google TV)的媒体控件将会隐藏。
2021 年 5 月 26 日
iOS 发件人 4.6.1
- 修复了以下问题:对于允许后台执行的应用,系统会暂停后台 Cast 会话。
2021 年 5 月 17 日
iOS Sender 4.6.0
- 将投屏按钮的默认行为更改为在连接到 Wi-Fi 时始终显示。
- 添加了一个新的帮助对话框,当用户点按“投放”按钮且未找到任何设备时,系统会显示该对话框。
-
弃用了
GCKUICastButton::triggersDefaultCastDialog
API。 -
为通过新 API
GCKUICastButtonDelegate
实现自定义界面的应用添加了更统一的对话框自定义支持。 - 为 iOS 13 及更高版本添加了深色模式支持。
-
向
GCKUIStyleAttributes
添加了广告标记自定义功能。 -
向媒体添加了对
hlsSegmentFormat
和hlsVideoSegmentFormat
的支持。 - 修正了一些错误并提升了性能。
2021 年 4 月 29 日
Web 接收器 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 年起,它们已被弃用。
-
向投放客户端库添加了
SessionState
类。 -
添加了
CastReasonCodes
,以详细说明CastStatusCodes
。使用CastContext#getCastReasonCodeForCastStatusCode(int)
方法从CastStatusCodes
转换为CastReasonCodes
。 -
向
MediaInfo.Builder
添加了HlsSegmentFormat
和HlsVideoSegmentFormat
。 -
将
MediaNotificationService
的foregroundServiceType
标记为mediaPlayback
。 -
将
com.google.android.datatransport:transport-api
的依赖项更新为最新版本。 -
添加了
MediaLoadRequestData.Builder
构造函数,以便从MediaLoadRequestData
对象构建。 - 修复了从视频点播切换到直播时迷你播放器上的播放/暂停按钮出现的问题。
-
实现了
MediaIntentReceiver#ACTION_DISCONNECT
,以便投放媒体通知。
-
发布了 play-services-cast-tv:18.0.0:
-
向 cast-tv 库添加了
StoreSessionRequestData
类和StoreSessionResponseData
类。
-
向 cast-tv 库添加了
2021 年 4 月 5 日
Web 接收器 3.0.0095
- 将 Shaka Player 升级到了 3.0.10。
-
现在,当支持
STREAM_TRANSFER
媒体命令时,系统会默认显示投放按钮。 - 在媒体浏览界面底部添加了建议栏。建议栏包含互动条状标签,用户选择这些条状标签后,可以播放媒体内容或滚动浏览可用媒体内容。每个条状标签还会映射到一个可用的 Google 助理指令。目前,只有在系统语言设为英语或日语时,系统才支持显示建议条状标签。
- 修复了 Chromecast(支持 Google TV)中的一个 bug,该 bug 会导致在将照片内容投放到默认接收器时显示媒体控件叠加层。
- 添加了对
TRACKS_CHANGED
事件的支持。
2020 年 12 月 18 日
Web 接收器 3.0.0085
-
向
CastReceiverOptions
添加了选项,以停用 Shaka 和 MPL 的加载。
2020 年 12 月 3 日
iOS Sender 4.5.3
-
修复了
GCKCredentialsData
的加载时错误“Undefined symbols for architecture arm64”。 -
修复了
GCKCredentialsData
上存在的无效性冲突编译器错误。 -
如果
Info.plist
中缺少必需的 Bonjour 服务条目,系统现在会记录警告消息。
2020 年 11 月 4 日
iOS 发件人 4.5.2
-
将 CocoaPods 中的
Protobuf
库的最低版本更新为 3.13。使用旧版Protobuf
会导致 SDK 崩溃。 - 此版本仅适用于 CocoaPods,并使用与 v4.5.1 相同的二进制文件。
2020 年 10 月 13 日
iOS 发件人 4.5.1
-
修复了以下问题:使用自定义设备选择器的
GCKUICastButton
无法更新以反映正确的 Cast 状态。 - 修复了“返回类型上的可为 null 性说明符存在冲突”警告。
2020 年 9 月 14 日
网络接收器
- 将 Shaka Player 升级到了 2.5.16。
iOS Sender 4.5.0
- 添加了对 iOS 14 中 Cast 设备发现更改的支持,首次投放时需要用户明确授权。如需了解详情,请参阅在 iOS 14 中首次投放。
- 将最低 SDK 支持版本更新为 iOS 10。
2020 年 9 月 8 日
网络发件人
- 引入了 Cast Connect,让 Chrome 应用能够将内容投放到 Android TV 应用。如需了解详情,请参阅 Android TV 接收器文档。
2020 年 8 月 31 日
网络接收器
- 在 DASH 中添加了对 HLS / EventStream 中的 #EXT-X-DATERANGE 的支持。
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 日
网络接收器
- 改进了默认界面(视频与音频)的媒体类别检测。
- 添加了对 Shaka Player 中实时绝对时间的支持。
- 修复了 Nest Hub Max 设备上的音频故障问题。
- 将 Shaka Player 升级到了 2.5.12。
2020 年 5 月 4 日
网络接收器
- 现在,您可以配置 Google 助理命令的超时值。
- 详细的 MPL 错误代码现已在错误事件中显示。
-
现在,您可以使用
enforceSupportedCommands
标志强制执行受支持的媒体命令。 - 修复了在播放中断期间报告的支持的命令。
- 修复了 Google 助理随机播放加载请求存在的问题。
- 修复了
getStats
值中的 bug。
2020 年 3 月 12 日
网络接收器
-
向
deviceCapabilities
添加了新的设备功能IS_CBCS_SUPPORTED
。 - 将 Shaka Player 升级到了 2.5.8。
2020 年 2 月 27 日
iOS Sender v4.4.7
- 修复了不使用 SDK 中的任何界面组件的应用的物理音量按钮。
-
修复了以下问题:在展开的控制器中,重复按向前或向后按钮时,
currentTime
标签出现问题。 -
GCKMediaQueue
中的媒体内容会在应用移至后台后保留。 -
界面自定义更新:
- 迷你控制器的进度条现在可自定义。
- 现在,您可以自定义投放对话框的导航栏和工具栏的背景颜色。
- 修复了特定于 iPhone X 的界面问题。
- 修复了导致卡顿和崩溃的一些问题。
2020 年 2 月 24 日
Android Sender 18.1.0
-
为
MediaError
详细错误代码和错误原因添加了预定义常量。
2020 年 1 月 22 日
网络接收器
- 修复了更改支持的命令时广播多个媒体状态的问题。
接收器 v2
- 改进了 VAST 广告的码率选择。
MPL
- 添加了对会话密钥预提取的支持。如需了解详情,请参阅 HTTP Live Streaming 第 2 版草稿。
2020 年 1 月 7 日
网络接收器
-
在
cast.framework.events.EmsgEvent
中添加了对 ID3 时间戳元数据的支持。此外,现在会为 HLS/CMAF 内容调度EmsgEvent
。 -
修复了以下问题:在转换到新媒体会话时,
PLAYER_LOAD_COMPLETE
期间缺少播放器数据。 - 修复了媒体图标与广告插播剪辑编号和倒计时重叠的问题。
- 修复了第一个广告插播片段的倒计时始终显示 0:00 的问题。
- 将 Shaka Player 升级到了 2.5.6。
Web 接收器 v2
-
向
deviceCapabilities
添加了新的设备功能IS_DEVICE_REGISTERED
。如果设置,系统会在 Cast Developer Console 中注册 Cast 设备以进行调试。 - 修复了加载卡顿问题。
- 现在,系统会针对队列中的每个失败项发送单独的媒体错误消息。
MPL
- 修复了直播存在的问题,即在收到停止消息后,音频会继续播放一段时间。
- 修复了在画质级别发生变化时显示视频压缩伪影的问题。
- 修复了使用 *.m4s 片段的 HLS 串流失败的问题。
2019 年 12 月 5 日
Android Sender 18.0.0
-
添加了
setMediaSessionEnabled
,以便开发者启用和停用由 Cast SDK 创建的媒体会话。 - 更改了投放会话期间媒体通知的显示方式。如果媒体通知处于启用状态,则会在投放会话期间始终显示。 以前,该图标仅在应用在后台运行时显示。
-
更改了一些与媒体相关的类,以实现
Parcelable
接口。
2019 年 11 月 11 日
iOS Sender v4.4.6
- 修复了与支持的最低 iOS 9 版本相关的问题。
2019 年 10 月 7 日
网络接收器
- 在轨道元数据中公开了轨道角色。
- 将 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 日
网络接收器
-
如果系统预加载了下一个内容,
TV_SHOW
元数据类型现在会在默认播放器中显示“接下来播放”预览。 -
向
cast.framework.messages
命名空间添加了ContentRating
类。 -
更新了默认界面音频标题,使
metadata.artist
优先于metadata.albumArtist
。 - 添加了对负 startTime 值的支持,以指示相对于内容结束时间或直播边缘的开始时间。
- 媒体浏览:
- 现在,媒体浏览抽屉会在用户无活动 30 秒后自动隐藏。
- 在媒体浏览叠加层的右上角添加了播放/暂停按钮和媒体内容缩略图。
- 更新了媒体浏览列表行为。现在,每当设置媒体浏览内容时,横向滚动都会重置为初始最左位置。
- 修复了以下问题:
-
延迟解析
BasePlayer
结束 promise,以允许触发媒体元素事件。 - 处理了广告预加载的加载错误。
- 水印现在会与其他元数据一起显示。
-
Chromecast 上的默认音频界面遵循
.progressBar
样式。 - 消除了在“LOADING”之前和在播放后续媒体内容之间显示空闲屏幕的闪烁。
- 修复了 Dash 内容的跳转延迟问题。
Web 接收器 v2
-
向
cast.receiver.media
命名空间添加了ContentRating
类。 - 修复了以下 bug:当队列中存在多个项时,错误数据会错误地传播。
媒体播放器库
- 向 API 添加了 HLS #EXT-X-MEDIA 属性。
- 修复了以下问题:
- 修复了 SourceBuffer remove() 操作失败导致音轨切换到崩溃播放的问题。
- 修复了以下问题:指定了打包的音频格式类型(例如 *.ec3),但使用了基于 MPEG-4 的片段(例如 *.mp4、*.mp4a 等)。
- 修复了以下 HLS 问题:带内 CEA608 字幕的显示存在明显延迟。
- 修复了音频无法加载的 HLS 和流畅内容问题。
2019 年 8 月 27 日
网络发件人
- Web Sender 现在使用新的自定义元素 v1 语法。此版本取代了已废弃的 v0。
-
使用添加到 Chrome M77 中的新
getEstimatedBreakTime
、getEstimatedBreakClipTime
和getLiveSeekableRange
函数修复了breakTime
、breakClipTime
和liveSeekableRange
的更改事件。
2019 年 8 月 12 日
iOS Sender v4.4.4
- 改进了 iOS 13 上的体验。
- 改进了对 Cast 设备发现的支持。
2019 年 7 月 30 日
网络接收器
- 将 Shaka Player 版本升级到了 2.5.1。
- 修复了内容加载期间元数据叠加层消失过快的问题。
- 修复了在加载拦截器中处理拒绝问题以清除加载状态的问题。
- 将
setBrowseContent
更新为可为 null。 - 修复了以下问题:在广告插播期间快进时,报告的当前时间不正确。
- 添加了对 ignoreTtmlPositionInfo 的支持,以忽略 TTML 字幕定位。
- 改进了对加载错误的处理支持:
- 避免了触发多个
MediaFinishedEvent
。 - 触发了媒体管理器错误回调,以在加载错误时清除播放器。
2019 年 7 月 22 日
iOS 发件人 v4.4.3
- 通过提供 error_reason,改进了对加载错误的处理支持。
- 发布了不支持访客模式的 SDK 版本。
2019 年 6 月 17 日
Android 发件人 17.0.0
- 最新的 SDK 已从 Android 支持库改用 Jetpack (AndroidX) 库。除非您在应用中进行以下更改,否则库将无法正常运行:
-
将
com.android.tools.build:gradle
升级到 v3.2.1 或更高版本。 - 将
compileSdkVersion
升级到 28 或更高版本。 - 请更新您的应用以使用 Jetpack (AndroidX)。请按照迁移至 AndroidX 中的说明操作。
- 如需了解详情,请参阅 Google API for Android 版本说明。
2019 年 6 月 10 日
网络接收器
- 引入了对媒体浏览功能的支持,这是在智能显示屏上发现内容的新功能。
- 在默认界面中为 9 种新语言区域添加了本地化:
- 丹麦语
- 英语(英国)
- 英语(印度)
- 英语(新加坡)
- 法语(加拿大)
- 意大利语
- 挪威语
- 荷兰语
- 瑞典语
- 移除了遥控器界面专用影集海报图片的圆角。
- 修复了直播和其他方面的问题。
iOS Sender v4.4.2
- 访客模式
- 添加了对 Cast 开发者控制台中的“启用访客模式”选项的支持。
- 修复了访客模式会话管理问题。
- bug 修复
- 修复了 v4.4.1 中引入的本地化问题。
2019 年 4 月 24 日
iOS Sender v4.4.1
- 推出了对直播的 Alpha 版支持。如需了解详情,请参阅开发者指南。
- 为直播状态添加了新的数据结构和属性。
- 添加了新的 GCKMediaMetadata 键。
- 添加了直播媒体命令:
- [GCKRemoteMediaClient loadMediaWithLoadRequestData:]
- [GCKRemoteMediaClient seekWithOptions:]
- 改进了展开式控制器界面,以支持直播:
- 更改了展开式控制器的布局和外观。
- bug 修复
- 修复了 iPhone X 上 GCKUICastContainerViewController 的底部。
- 修复了操作系统执行大量网络活动时重新连接的问题。
- 修复了使用 GCKUICastButton 时无障碍功能标签初始化发生崩溃的问题。
2019 年 4 月 23 日
网络接收器
- 推出了对直播的 Alpha 版支持。如需了解详情,请参阅开发者指南。
- 更新了界面,以支持直播(包括直播指示器)。
- 向媒体状态添加了 mediaCategory 字段,用于指明媒体是视频、音频还是照片。
- bug 修复
- 修复了 playbackConfig.segmentHandler 返回值的用法。
媒体播放器库
- 在 MPL 中为 HLS 添加了 HEVC 编解码器支持。
网络发件人
- 推出了对直播的 Alpha 版支持。如需了解详情,请参阅开发者指南。
- 引入了对广告的支持。如需了解详情,请参阅开发者指南。
- 添加了 RemotePlayerController.skipAd() 以处理可跳过的广告。
Android Sender 16.2.0
- 推出了对直播的 Alpha 版支持。如需了解详情,请参阅开发者指南。
- 为直播状态添加了新的数据结构和属性。
- 添加了新的 MediaMetadata 键。
- 添加了直播媒体命令:
- RemoteMediaClient#load(MediaLoadRequestData)
- RemoteMediaClient#seek(MediaSeekOptions)
- 改进了展开式控制器界面,以支持直播:
- 为展开的控制器界面微件添加了直播支持。
- 更改了展开式控制器的布局和外观。
- 引入了与直播兼容的 CastSeekBar 微件,以替换原生 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 日
网络接收器
-
将
document.registerElement()
的用法替换为了customElements.define()
,以使 Web 接收器 SDK 与较新版本的 Cast 平台兼容。 -
MediaStatus.breakStatus
现在,如果内容包含广告插播时间点,但广告插播时间点目前未播放广告,则会返回一个空对象。 - 修复了内嵌 VAST 代码解析方面的问题。
媒体播放器库
- 修复了切换音轨时出现大约 20 秒延迟的问题。
2019 年 2 月 13 日
网络接收器
- 修复了触摸界面中广告跳过按钮突然显示的问题。
- 修复了在遥控器上显示休息时刻信息的问题。
媒体播放器库
- 修复了处理预加载媒体的 licenseUrl 时出现的问题。
2019 年 2 月 5 日
iOS Sender v4.3.5
- 添加了对有声读物元数据的支持,如需了解详情,请参阅 GCKMediaMetadata.h。
- 为 podspec 上的 static_framework 设置正确的值。
- 在 连接控制器中为导航栏和工具栏拆分 styleAttributes。
- bug 修复
- 修复了在某些数据库初始化失败时发生崩溃的问题。
- 修复了在来电或闹钟响铃期间 Web 接收器音量条出现的问题。
- 修复了在发现期间重复调用某些代理方法的问题。
- 修复了以下问题:队列中的最后一项播放完毕后,媒体队列列表不会清除。
- 禁止在网络不可用时显示无法连接的附近设备。
- 针对无法控制音量的设备,停用了设备视图控制器上的音量滑块。