That's a good question and unfortunately I don't think there is an easy answer. It will require either modifying the SMF source code or extensively overriding its methods in your own subclass. Basically what you'd need to do on PlayListItemChanged is to
start off your first item, then load up another MediaPlugin in the background for the next item in the list. Whent he first one is done, you can quickly switch to the next one. And when switching to that next one you preload the one after that.
This could get rather touchy since now you also need to watch for all the events on the PreloadMediaPlugin so if the video fails to load you preload the next.
One way of approach subscribe to the event OnPlayListItemChanged.
- Then take the next item in the playlist and call SelectMediaPlugin(NextPlaylistItem) to get the media plugin for the next item
- Load that MediaPlugin into a new property PreloadMediaPlugin, make sure to handle the relavent events for this plugin. Like if the media fails to load you move onto the next playlist item
- Assign the MediaPlugin the source and have it load the video in a stopped state
- The next part may be tricky, when the current video is done playing you'll need to intercept the event before SMF starts moving onto the next item on its own and loading up it's own MediaPlugin (this happens in OnCurrentPlaylistItemChanged()) At this point
you'd want to replace the ActiveMediaPlugin with the PreloadMediaPlugin and start playing the video.
- Then you can start the process all over by moving onto the next item in the line and preloading it.
A lot of things will need to be handled. OnCurrentPlaylistItemChanged handles loading captions and chapters, OnMediaPluginLoaded also handles tons wireup. This should only really be called when you play the first item or when the preload is put in place
of the active media plugin. There are many other nuances
That all being said I know that SMF has been used for doing multiple playing videos at the same time. Like doing multi-angle display for Sunday Night Football. I just haven't seen any example of how to set this up or have seen any indication how to do it.