Chromecast 播放 MPEG-DASH 直播时遇到问题。由于清单中缺少 UTCTiming 标签,会发生无限加载。众所周知,ShakaPlayer 会出现此问题。这是FAQ中的第一个问题:https ://github.com/google/shaka-player/blob/master/docs/tutorials/faq.md
然而,在 chromecast 上,我无法直接访问 ShakaPlayer(或者可能有一种我不熟悉的方式)。我能想到的问题有两种解决方案:
- 动态修改清单。
this.playbackConfig.manifestHandler = (manifest) => { //将 UTCTiming 添加到具有如下属性的清单中: customUTC.setAttribute("schemeIdUri", "urn:mpeg:dash:utc:http-head:2014"); customUTC.setAttribute("值", this.manifestUrl); }
然而,这不会改变 chromecast 播放器的行为,仍然会发生无限加载,我在这里做错了吗?
- 通过设置使用旧版播放器(媒体播放器库)
useLegacyDashSupport
可以正常播放 chromecast 播放流,但会稍微破坏 UI。我可以仅在需要时动态切换到旧版播放器吗?例如,基于清单,或在来自发件人应用程序的 loadRequest 期间。