You've mentioned two separate problems, and while I don't know how to keep the buffered video, You can still avoid starting from the beginning by calling getCurrentPosition in onPause and seekTo on onResume. This call is asynchronous, but it might give you a partial solution.