Android How to change default VideoView / MediaPlayer Vollbild?

Ich bin derzeit auf der Wiedergabe einer video - (.mp4-Datei, die gut funktioniert in beide zwei android-tablets) in VideoView. Zuerst nutzte ich VideoView aber das Gerät (EKEN nur m003s) gespielt, das video im full screen " nicht innerhalb der VideoView der ich sowohl die Breite und Höhe von 272 x 153 dp. So habe ich versucht, eine erweiterte Klasse von VideoView überschreiben onMeasure() und changeVideoSize(). Wie diese:

    public class EkenVideoView extends VideoView {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    //Log.i("@@@@", "onMeasure");
    int width = getDefaultSize(mVideoWidth, widthMeasureSpec);
    int height = getDefaultSize(mVideoHeight, heightMeasureSpec);
    if (mVideoWidth > 0 && mVideoHeight > 0) {
        if ( mVideoWidth * height  > width * mVideoHeight ) {
            //Log.i("@@@", "image too tall, correcting");
            height = width * mVideoHeight / mVideoWidth;
        } else if ( mVideoWidth * height  < width * mVideoHeight ) {
            //Log.i("@@@", "image too wide, correcting");
            width = height * mVideoWidth / mVideoHeight;
        } else {
            //Log.i("@@@", "aspect ratio is correct: " +
                    //width+"/"+height+"="+
                    //mVideoWidth+"/"+mVideoHeight);
        }
    }
    if (screenMode == DisplayMode.ORIGINAL) {
       if (mVideoWidth > 0 && mVideoHeight > 0) {
           if ( mVideoWidth * height  > width * mVideoHeight ) {
               //video height exceeds screen, shrink it
               height = width * mVideoHeight / mVideoWidth;
           } else if ( mVideoWidth * height  < width * mVideoHeight ) {
               //video width exceeds screen, shrink it
               width = height * mVideoWidth / mVideoHeight;
           } else {
               //aspect ratio is correct
           }
       }
    }
    else if (screenMode == DisplayMode.FULL_SCREEN) {
       //just use the default screen width and screen height 
    }
    else if (screenMode == DisplayMode.ZOOM) {
       //zoom video
       if (mVideoWidth > 0 && mVideoHeight > 0 && mVideoWidth < width) {
           height = mVideoHeight * width / mVideoWidth;
       }
    }
    //Log.i("@@@@@@@@@@", "setting size: " + width + 'x' + height);
    setMeasuredDimension(272, 153);
}

    public void changeVideoSize(int width, int height)
{
    mVideoWidth = width;       
    mVideoHeight = height;

    //not sure whether it is useful or not but safe to do so
    getHolder().setFixedSize(272, 153); 

    requestLayout();
    invalidate();     //very important, so that onMeasure will be triggered
}

Ich eingegeben, Breite 272 und Höhe 153-Kraft, die Breite und Höhe des .mp4-video in der Größe, aber EKEN nur m003s weiter zu spielen Videos in full-screen-Modus. Also wenn ich die app starte, funktioniert alles einwandfrei und das video spielt im Vollbildmodus auf eine Ebene unter allen anderen Ansichten, so dass die Aktivität translucent mit dem video darunter.

Andere als EKEN nur m003s, ich bin mir sicher, dass einige Geräte haben auch Funktionen, um Gewalt-video-spielen im Vollbildmodus standardmäßig, und es gibt auch eine Möglichkeit zum überschreiben der Standard-Einstellung. Wenn es einen Weg gibt, bitte mir beibringen, wie es zu tun. Danke.

"Ich bin mir sicher, dass einige Geräte haben auch Funktionen, um Gewalt-video-spielen im Vollbildmodus standardmäßig" -- keine, die berechtigterweise den Android Market auf Sie. Dies würde nicht passieren die Verträglichkeit für den Markt. Also, wenn Sie sicher sind, dass Ihre Analyse korrekt ist, Kontaktieren Sie den Hersteller und Fragen Sie Sie, wie Sie arbeiten, um Ihre inkompatiblen fork von Android.

InformationsquelleAutor Macchiato13 | 2011-10-20

Schreibe einen Kommentar