How to change the source files of subtitles on the fly (originally defined in the HTML via <track> element) when changing a video source (via the setSrc() method) ?
In other words, when playing a video I use setSrc() method to change video source and I would also redefine the subtitle files (SRT) linked.
A trick I devised was to set an ID on the subtitle track
<track id="subtitles" kind="subtitles" src="subtitles.srt" srclang="en" />
Then inside of whatever event you need you can use:
$('#subtitles').attr('src', 'different_subtitles.srt');
player.findTracks();
player.loadTrack(0);
player.setSrc('different_video.mp4');
There may be a more elegant way to go about this and MediaElementJS really should provide an API for this. But in the meantime this trick should get you by.
This doesn't quite work for every event (like 'ended'). While this code does reliably load & change the TRACK source, if you have a language already displaying, it will not display the newly 'sourced' TRACK with a new video unless the CC is set to None and then a language.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With