Фон
Чтобы инициализировать сеанс Chromecast с моего видеопроигрывателя, мне нужно вызвать метод на window.chrome.cast
.Это работает правильно на настольном Chrome, однако объект Android Chrome window.chrome
не содержит обязательного поля cast
.
Я использую Google Pixel под управлением Android 9. Ваш совет приветствуется!
код
Перед инициализацией сеанса Chromecast я добавляю в окно прослушиватель, который определяет, доступен ли Google Chromecast API:
window.__onGCastApiAvailable = (isAvailable) => {
if (isAvailable) {
this.initializeCastApi();
}
};
В Android Chrome, isAvailable
не становится истинным, и поэтому API никогда не инициализируется.Если я удаляю условное выражение и просто запускаю initializeCastApi()
, следующая строка в этом методе запускается первой:
const sessionRequest = new chrome.cast.SessionRequest(/* App ID */);
В Android это вызывает следующую ошибку, поскольку window.chrome.cast
не существует:
Uncaught TypeError: Cannot read property 'SessionRequest' of undefined
Ожидания против реальности
Я ожидаю, что поведение Chromecast на Android Chrome будет работать так же, как на настольном Chrome, поскольку Chromecast API доступен на обоих.
Однако объекты window.chrome
не совпадают, и, поскольку объект Android не включает cast
, я не могу запустить Chromecast в этом браузере.
Снимки экрана
Объект window.chrome
на настольном Chrome (обратите внимание на наличие cast
):
И объект window.chrome
на Android Chrome: