【发布时间】:2019-10-27 08:22:13
【问题描述】:
背景
为了从我的视频播放器初始化 Chromecast 会话,我需要在 window.chrome.cast 上调用一个方法。这在桌面 Chrome 上可以正常工作,但是 Android Chrome 的 window.chrome 对象不包含必需的 cast 字段。
我使用的是运行 Android 9 的 Google Pixel。非常感谢您的建议!
代码
在初始化 Chromecast 会话之前,我在窗口中添加了一个侦听器,用于检测 Google Chromecast API 是否可用:
window.__onGCastApiAvailable = (isAvailable) => {
if (isAvailable) {
this.initializeCastApi();
}
};
在 Android Chrome 上,isAvailable 不会变为 true,因此永远不会初始化 API。如果我删除条件并只运行initializeCastApi(),则以下行将首先在该方法中运行:
const sessionRequest = new chrome.cast.SessionRequest(/* App ID */);
在 Android 上,这会导致以下错误,因为 window.chrome.cast 不存在:
Uncaught TypeError: Cannot read property 'SessionRequest' of undefined
期望与现实
我希望 Android Chrome 上的 Chromecast 行为能够像在桌面 Chrome 上一样运行,因为 Chromecast API 在两者上都可用。
但是window.chrome 对象并不相同,并且由于 Android 的对象不包括 cast,因此我无法在该浏览器上启动 Chromecast。
截图
【问题讨论】:
-
你有没有想过这个问题?我自己也遇到了同样的问题。
标签: javascript android google-chrome chromecast