Currently, Chrome for Android uses [`MediaPlayer` API](https://developer.android.com/reference/android/media/MediaPlayer) to handle HLS contents (Google is [implementing its own playback support](https://issues.chromium.org/issues/40057824)), and I think that's why it didn't load `hls.js`, either. Also, `MediaPlayer` fetches the media internally so Chrome won't show network requests for the video chunks. On the other hand, [GeckoView supports HLS using an outdated version of ExoPlayer](https://searchfox.org/mozilla-central/source/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHlsPlayer.java) and it cannot find the audio track in this particular video. (In reply to Thomas Wisniewski [:twisniewski] from comment #11) > :jhlin, I don't see `Hls` defined on Chrome either, in any JS frame. Their player doesn't even seem to try to load Hls.js in either browser, and instead seems to just sets the video's src to `"https://cdn.rasset.ie/hls-vod/2022/0101/20220101_webexclusi-sixnews- morehospit_c22045363_22045375_ih000410873_260_/manifest.m3u8"` and tries to `.play()` it. Firefox ends up throwing an error on the video element, since it's HLS, but Chrome seems to just work. > > The only place in their sources which seems to inject `hls.[min.]js` is here in their `player.mins.js`, which never trips a breakpoint for me in Chrome: > ``` > , g = function() { > $.getScript("js/vendor/hls.min.js?v=2").done(function(a) { > f() > }).fail(function(a, b, c) { > h() > }) > ``` > > I have no idea how this is possible, to be honest. The m3u8 seems to be playing HLS: > ``` > #EXTM3U > #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2200000 > /hls-vod/2022/0101/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260_/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260__2048k.mp4.m3u8 > #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1100000 > /hls-vod/2022/0101/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260_/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260__1024k.mp4.m3u8 > ``` > > Chrome is showing no networking requests for chunks of video as it plays, either. Just requests for SVG buttons and empty-response tracking pings. > > ..Does Chrome just support natively playing back that format, while we don't?
Bug 1802969 Comment 12 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Currently, Chrome for Android uses [`MediaPlayer` API](https://developer.android.com/reference/android/media/MediaPlayer) to handle HLS contents (Google is [implementing its own playback support](https://issues.chromium.org/issues/40057824)), and I think that's why it didn't load `hls.js`, either. Also, `MediaPlayer` fetches the media internally so Chrome won't show network requests for the video chunks. On the other hand, [GeckoView supports HLS using an outdated version of ExoPlayer](https://searchfox.org/mozilla-central/source/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHlsPlayer.java)(currently disabled in nightly and early beta builds) and it cannot find the audio track in this particular video. (In reply to Thomas Wisniewski [:twisniewski] from comment #11) > :jhlin, I don't see `Hls` defined on Chrome either, in any JS frame. Their player doesn't even seem to try to load Hls.js in either browser, and instead seems to just sets the video's src to `"https://cdn.rasset.ie/hls-vod/2022/0101/20220101_webexclusi-sixnews- morehospit_c22045363_22045375_ih000410873_260_/manifest.m3u8"` and tries to `.play()` it. Firefox ends up throwing an error on the video element, since it's HLS, but Chrome seems to just work. > > The only place in their sources which seems to inject `hls.[min.]js` is here in their `player.mins.js`, which never trips a breakpoint for me in Chrome: > ``` > , g = function() { > $.getScript("js/vendor/hls.min.js?v=2").done(function(a) { > f() > }).fail(function(a, b, c) { > h() > }) > ``` > > I have no idea how this is possible, to be honest. The m3u8 seems to be playing HLS: > ``` > #EXTM3U > #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2200000 > /hls-vod/2022/0101/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260_/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260__2048k.mp4.m3u8 > #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1100000 > /hls-vod/2022/0101/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260_/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260__1024k.mp4.m3u8 > ``` > > Chrome is showing no networking requests for chunks of video as it plays, either. Just requests for SVG buttons and empty-response tracking pings. > > ..Does Chrome just support natively playing back that format, while we don't?