diff --git a/lib/polyfill/media_capabilities.js b/lib/polyfill/media_capabilities.js index 537cc982f69..0176509d937 100644 --- a/lib/polyfill/media_capabilities.js +++ b/lib/polyfill/media_capabilities.js @@ -24,8 +24,8 @@ shaka.polyfill.MediaCapabilities = class { * @export */ static install() { - // Since MediaCapabilities is not fully supported on Chromecast yet, we - // should always install polyfill for Chromecast. + // Since MediaCapabilities is not fully supported on some Chromecast yet, + // we should always install polyfill for all Chromecast not Android-based. // TODO: re-evaluate MediaCapabilities in the future versions of Chromecast. // Since MediaCapabilities implementation is buggy in Apple browsers, we // should always install polyfill for Apple browsers. @@ -37,7 +37,7 @@ shaka.polyfill.MediaCapabilities = class { // See: https://github.com/shaka-project/shaka-player/issues/3582 // TODO: re-evaluate MediaCapabilities in the future versions of PS5 // Browsers. - if (!shaka.util.Platform.isChromecast() && + if (!shaka.util.Platform.isAndroidCastDevice() && !shaka.util.Platform.isApple() && !shaka.util.Platform.isPS5() && navigator.mediaCapabilities) { diff --git a/lib/util/platform.js b/lib/util/platform.js index c846e7792e6..92f63e5e128 100644 --- a/lib/util/platform.js +++ b/lib/util/platform.js @@ -163,6 +163,16 @@ shaka.util.Platform = class { return shaka.util.Platform.userAgentContains_('CrKey'); } + /** + * Check if the current platform is a Android-based Cast devices. + * + * @return {boolean} + */ + static isAndroidCastDevice() { + return shaka.util.Platform.isChromecast() && + shaka.util.Platform.userAgentContains_('Android'); + } + /** * Check if the current platform is Google Chrome. *