Version details

1.8 (13-Mar-2015)

About synchronization. Finally gave up with trying to do this transparently for the program. Now when playback switches to the next clip (in regular way, not by the user request), component explicitly restarts playback. Note, component intervenes in playback only if the next track is Youtube clip and only if video playback is enabled. Below is details of how it is done.

The start of clip playback consist of two stages: analysis of the page(s) to retrieve links to media files and actual media file opening for decode. Now because of playback restart, the same clip starts to play twice. To optimize this, info of the playing track now is cached so at the second start can be skipped analysis stage. At other hand, at first start is not need decoding so there skipped the file opening stage: decoder just waits until it will be closed and does not give any data. With this also solved the case when small portion of audio data from the first start is played before the second start was completed. All this concerns only to opening for playback, if track opened for other purposes (for example by Waveform seekbar), decoding will be done in the usual way.

Also, while did all this, accidentally found a way to reduce silence after seek.

Changelog Version details