I am using a VideoView
and the MediaController
for an app I am working on. I simply wanted to have the MediaController
appear on top
The preferred way to control the location of the MediaController is via setAnchorView. Unfortunately, the VideoView seems to override this value to be the parent view of itself whenever a new video is loaded. To counter act this, a class like the following should work
public class ConstantAnchorMediaController extends MediaController
{
public ConstantAnchorMediaController(Context context, View anchor)
{
super(context);
super.setAnchorView(anchor);
}
@Override
public void setAnchorView(View view)
{
// Do nothing
}
}
Once you do that, you can use this MediaController to set the Anchor to whichever view you desire without worrying about your VideoView changing it. After that, its just a matter of getting a view in the right place to anchor it too.
What i have learning some months ago about Android is this :
When difficultys come , make your own components .
What i mean , that is easy to make your components layout , width 4 or five ImageButtons/Buttons , and link them to the VideoView component functions (or SurfaceView for a better control ).
Some of the VideoView functions (extracted from here):
start() -> To start a video play
pause() -> To pause it
seekTo(int msec) -> To go the exactly place , using it with a SeekBar
...
Then you can make some Layout with the buttons in order to put them where you want , without the problems of trying to extend a rigid component like V.
You should be able to override the
android.view.View.OnLayout(boolean, int, int, int, int)
method in your VFPlayer class. From here put the view/widget where you want it.