I wasn't able to figure this out completely, but this is my workaround.
I set the position of the MediaController using setY and setting it to a negative offset equal to the height of the buttons. I set up the MediaController in my onVideoSizeChanged (after I know the size of the video player)
s3VideoPlayer.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() {
@Override
public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
// set up mediacontroller
videoController = new MediaController(MediaPreview.this);
videoControllerExists = true;
videoController.setAnchorView(mediaHolder);
videoController.setY(-bottomButtons.getHeight());
videoController.bringToFront();
videoController.requestFocus();
mediaProgress.setVisibility(View.GONE);
}
});
s3VideoPlayer.start();
This ends up looking like this:
You may notice that the play/pause and fastforward and rewind buttons are now gone; I wasn't able to get them to appear again. I still can't click on the image buttons when the mediaController is visible, but when I click anywhere in the view, the mediaController hides itself so the user essentially has to tap either button twice to get it to work. It's not great but better than what I had before.