issue #82: preliminary refactor to make MediaPlayer use MediaSource array (instead of list) and some other refactors required before adding 3rd type of replay mode