Subtitles not displayed on IE11 from v2.6.4 onwards
Created by: davemevans
Environment
-
The MPD passes the DASH-IF Conformance Tool on http://dashif.org/conformance.html -
The stream has correct Access-Control-Allow-Origin headers (CORS) -
There are no network errors such as 404s in the browser console when trying to play the stream -
The issue observed is not mentioned on https://github.com/Dash-Industry-Forum/dash.js/wiki/FAQ -
The issue occurs in the latest reference client on http://reference.dashif.org/dash.js/ and not just on my page
- Link to playable MPD file: https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd
- Dash.js version: nightly
- Browser name/version: IE11
- OS name/version: Win10
Steps to reproduce
- Load a manifest with text. Happens every time.
Observed behaviour
An exception is thrown when appending the init segment because a method in TextController calls Array.prototype.findIndex
which is not available in IE11 and not provided by our transcompiler.
Console output
[121528] Streaming Initialized
[121542] Playback Initialized
[133680] Parsing complete: ( xml2json: 125ms, objectiron: 11.4ms, total: 0.137s)
[133767] MediaSource attached to element. Waiting on open...
[133769] Manifest has been refreshed at Fri Mar 23 2018 17:04:40 GMT+0800 (中国标准时间)[1521795880.226]
[133782] MediaSource is open!
[133783] Duration successfully set to: 734
[133784] Added 0 inline events
[133819] video codec: video/mp4;codecs="avc1.640015"
[133829] AbrController (video) switch from 0 to 1/4 (buffer: 0) .
[133861] audio codec: audio/mp4;codecs="mp4a.40.2"
[133863] audio codec: audio/mp4;codecs="mp4a.40.2"
[133865] audio codec: audio/mp4;codecs="mp4a.40.2"
[133869] No text data.
[133879] No embeddedText data.
[133880] No muxed data.
[133880] No image data.
[134228] DRM: KeySystem Access Granted (com.microsoft.playready)! Selecting key system...
[154890] DRM: Session created. SessionID = Error
[154897] DRM: KeySystem Access Granted
[154900] DRM: Session created. SessionID = Error
[154930] [ScheduleController][ video ] start
[154936] [ScheduleController][ audio ] start
[154939] [ScheduleController][ fragmentedText ] start
[154941] Start Event Controller
[154947] Native video element event: play
[154956] [StreamController][onPlaybackStarted]
[154964] Native video element event: waiting
[155006] AbrController (video) stay on 1/4 (buffer: 0)
[155007] ScheduleController - video - quality has changed, get init request for representationid = 2
[155009] [ScheduleController][ video ] isFragmentProcessingInProgress is already equal to true
[155014] AbrController (audio) stay on 0/0 (buffer: 0)
[155015] ScheduleController - audio - quality has changed, get init request for representationid = 10
[155016] [ScheduleController][ audio ] isFragmentProcessingInProgress is already equal to true
[155032] ScheduleController - fragmentedText - quality has changed, get init request for representationid = 11
[155033] [ScheduleController][ fragmentedText ] isFragmentProcessingInProgress is already equal to true
[155520] Init fragment finished loading saving to fragmentedText's init cache
[155521] Append Init fragment fragmentedText with representationId: 11 and quality: 0
[155540] SourceBuffer append failed "TypeError: Object does not support "findIndex" property or method
[155541] [ScheduleController][ fragmentedText ] - onFragmentLoadingCompleted
This used to work in 2.6.3, and was introduced by https://github.com/Dash-Industry-Forum/dash.js/commit/44bb150932aa15a9f07aeb93f94a5199470f3cd4