Project Details
It has been decided that VideoSequencer will be an external library for popcorn.js. There is a lighthouse ticket here. The Github repository for VideoSequencer can be found here.
duration is the total length in seconds of all the videos.
segments[] is an array of the video elements in the Sequencer
VideoSequencer currently contains these methods:
VideoSequencer() - Constructor
play() - Plays the currently active video
pause() - Pauses the currently active video
togglePlay() - if the active video is playing, it is paused. and vice-versa
add(src, len, index) - adds the URI in src of length len (in seconds) to the list of segments
seek(time) - calculates which segment is playing at the specified time, and swaps to it, then seeks to the right position (NEEDS WORK)
swap(seeking) - removes the active video tag from the DOM and displays the inactive video. It then creates a hidden tag and begins pre-loading it. if seeking is set to true, it will remove both tags.
addEventListener(event, callback, useCapture) - adds the event and callback to the queue if it does not exist already, and then adds it to the currently playing video.
removeEventListener(event, callback, usecapture) - if event and callback exist in the event queue, they are remove from the queue and also from the currently playing video.
addListenersToCurrentVideo(listener) - adds all callbacks in the queue for "listener" to the currently playing video
createVideoTag(width, height, controls, hidden) - creates a new video tag with the specified settings and returns it.
update() - checks to see if the active video is about to end. If the video is about to end it calls swap().
convertXML(xmlDoc) - parses the video segment data into the VideoSequencer.
getSegmentData(segDataFile) - creates an XMLHttpRequest to get the segment data XML, then callse convertXML(xmlDoc)
calculateDuration() - calculates the duration of all the videos in the segment object and returns the value.