【发布时间】:2019-10-13 15:48:15
【问题描述】:
我想要无缝播放多个视频内容。 (HLS/使用 queueData)
预加载有效!但是当视频发生变化时,会显示“正在加载”屏幕。
如何在 CAF 自定义播放器中不“加载”屏幕进行播放?
【问题讨论】:
标签: javascript chromecast google-cast google-cast-sdk
我想要无缝播放多个视频内容。 (HLS/使用 queueData)
预加载有效!但是当视频发生变化时,会显示“正在加载”屏幕。
如何在 CAF 自定义播放器中不“加载”屏幕进行播放?
【问题讨论】:
标签: javascript chromecast google-cast google-cast-sdk
即使PRELOAD 请求开始缓冲队列的下一项以减少下一个剪辑的加载时间,播放也绝不会“无缝”。
每次实际的LOAD 请求进入时,播放器都会(默认情况下)切换到BUFFERING 状态并显示相关的UI,直到它回到PLAYING
Google's UX guidelines for autoplay 非常清楚 UI 在队列播放时应如何表现 - 如果您想发布您的应用程序,您可能需要考虑遵守这一点。话虽这么说:
看看您的 HTML - 您是否使用了 <cast-media-player></cast-media-player> 自定义标签?您可以使用 CSS 设置应用程序所有状态的外观 - 查看documentation 了解详细信息。
--buffering-image 和 --spinner-image 是您可以在此处更改的可自定义元素。再说一遍:当播放器进入缓冲状态时,这些总是会弹出,所以你必须想出一些比微调器和默认图像更不令人不安的东西:也许是黑屏?
此外,您不能简单地使用 CSS 来摆脱这些:当初始化播放并构建队列时,您很可能仍想显示它们 - 因此完全禁用它们不是一种选择。 棘手的部分是找到合适的events 来禁用和重新启用它们:
考虑MediaFinishedEvent 禁用它们,也许PLAYER_LOAD_COMPLETE 事件将它们恢复为默认值。
(BUFFERING 事件可能也有效,但当我尝试使用它时非常不可靠。)
【讨论】: