window.chrome.cast在Android Chrome浏览器上不可用

时间:2019-06-12 18:52:13

标签: javascript android google-chrome chromecast

背景

为了从我的视频播放器初始化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。

屏幕截图

台式机Chrome浏览器上的window.chrome对象(请注意cast的存在): enter image description here

以及Android Chrome上的window.chrome对象: enter image description here

0 个答案:

没有答案