背景
为了从我的视频播放器初始化 Chromecast session ,我需要在 window.chrome.cast
上调用一个方法。这在桌面 Chrome 上可以正常工作,但是 Android Chrome 的 window.chrome
对象不包含必需的 cast
字段。
我使用的是运行 Android 9 的 Google Pixel。非常感谢您的建议!
代码
在初始化 Chromecast session 之前,我在检测 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。
截图
最佳答案
包含 Chromecast 的 Presentation API isn't available over HTTP anymore .
尝试通过 HTTPS 连接加载您的网络发送器。
最简单的方法是使用 ngrok;
- 安装 ngrok
- 运行
ngrok http 3000
(将3000
替换为您的本地端口) - 导航到终端显示的
https
转发地址
关于javascript - window.chrome.cast 在 Android Chrome 浏览器上不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56568652/