setNextMediaPlayer() was added in API level 16 for that purpose.
If your target is above API 16, this should do the job.
If your target is below API 16, the following can work.
In one my projects, I did it just using MediaPlayer().
In that case, I set setDataSource() in onCompletion(){}; without inializing the MediaPlayer again.

I borrowed some code from ToolHoverPopup class from SPen library, also I customized for this special popup so that nothing is created or inflated until the actual hovering is happened so that we don't consume resources for enabling such a preview in lists.

We need to have our preview attached to a Window so because of this we have to manage all the underlying job of positioning which is normally done by PopupWindow, so I completely removed the dependency on the PopupWindow and now my HoverPreview class is fully working and manages all the jobs, also it has the ability to determine the Hover Detection delay in milliseconds.

Screenshot (SurfaceView is created)

Usage: (Since the layout contains SurfaceView and is resource intensive, I manually trigger onHover event so that the real surface creation is performed only when the real hover is performed. Also by this, I don't create any object of HoverPreview before it's needed)