Skip to content Skip to sidebar Skip to footer

Extending Mediacontroller For Android

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 of my VideoView but apparently you can't do th

Solution 1:

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

publicclassConstantAnchorMediaControllerextendsMediaController
{

    publicConstantAnchorMediaController(Context context, View anchor)
    {
        super(context);
        super.setAnchorView(anchor);
    }

    @OverridepublicvoidsetAnchorView(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.

Solution 2:

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.

Solution 3:

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 avideo play
pause() -> Topause 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.

Post a Comment for "Extending Mediacontroller For Android"