javascript - 如何在 CAF 自定义播放器中不“加载”屏幕进行播放。(带有 QueueData 的 HLS)
问题描述
我想要无缝播放多个视频内容。(HLS/使用 queueData)
预加载是有效的!但是当视频发生变化时,会显示“加载”屏幕。
如何在 CAF 自定义播放器中不“加载”屏幕进行播放?
解决方案
即使PRELOAD
请求开始缓冲队列的下一项以减少下一个剪辑的加载时间,播放也永远不会“无缝”。
每次实际LOAD
请求进入时,播放器将(默认情况下)切换到BUFFERING
状态并显示关联的 UI,直到它返回PLAYING
Google 的自动播放用户体验指南非常清楚 UI 在队列播放时应如何表现 - 如果您想发布您的应用程序,您可能需要考虑遵守这一点。话虽如此:
看看你的 HTML - 你在使用<cast-media-player></cast-media-player>
自定义标签吗?您可以使用 CSS 设置应用程序所有状态的外观 - 查看文档了解详细信息。
--buffering-image
并且--spinner-image
是您可以在此处更改的可自定义元素。再说一遍:当玩家进入缓冲状态时,这些总是会弹出,所以你必须想出一些比微调器和默认图像更令人不安的东西:也许是黑屏?
此外,您不能简单地使用 CSS 来摆脱这些:当初始化播放并构建队列时,您很可能仍想显示它们 - 所以完全禁用它们不是一种选择。棘手的部分是找到适当的事件来禁用和重新启用它们:
考虑使用MediaFinishedEvent禁用它们,并考虑将它们PLAYER_LOAD_COMPLETE
恢复为默认值的事件。(BUFFERING事件也可能起作用,但当我尝试使用它时非常不可靠。)
推荐阅读
- java - 我在连接到服务器时遇到了一些问题。在 ASP .NET Core 上编写,在 android 上
- c# - 从 C# 中的属性中获取字段?
- xcode - 如何在 iOS XCode 11.4 的模拟器中测试 FCM 推送通知?
- javascript - 将元素设置在另一个元素之下并删除当前放置元素
- prestashop - 如何快速找出 PrestaShop 网站是 1.6 版还是 1.7.x 版?
- javascript - JS 找不到 HTML 选择
- django - 模型中字段中每个项目的选择
- kotlin - 当 setOnTouchListener 在 kotlin 中工作时 setOnClickListener 不工作
- c++ - 使用返回对象的函数处理错误
- java - 为什么从 int 到 char 的隐式类型转换没有给我错误?