Skip to content

Instantly share code, notes, and snippets.

@dmlap
Created November 30, 2016 17:09
Show Gist options
  • Save dmlap/01487136b17e191c75136ed6b90342d5 to your computer and use it in GitHub Desktop.
Save dmlap/01487136b17e191c75136ed6b90342d5 to your computer and use it in GitHub Desktop.
Pseudo-code for listening to in-band ID3 tags when client-side ads may be active.
var id3Track = null;
// Step 1: listen for in-band metadata tracks to become available for new videos and
// register your listeners
player.on('loadedmetadata', function() {
for (var i = 0; i < player.textTracks().length; i++) {
var track = player.textTracks()[i];
if (track.inBandMetadataTrackDispatchType) {
id3Track = track;
id3Track.mode = 'hidden';
id3Track.addEventListener('cuechange', handleCueChange);
}
}
});
// step 2: when the video starts playing, find the new id3 track if ads caused the
// old one to be replaced
player.on('playing', function() {
for (var i = 0; i < player.textTracks().length; i++) {
var track = player.textTracks()[i];
if (track.inBandMetadataTrackDispatchType &&
track !== id3track) {
id3Track = track;
id3Track.mode = 'hidden';
id3Track.addEventListener('cuechange', handleCueChange);
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment