背景
为了从我的视频播放器初始化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。
屏幕截图