Полноэкранное видео в приложении для Android

У меня проблема с воспроизведением видео в приложении для Android в полноэкранном режиме при работе на планшете (на Android 4.2.2). Я попытался запустить приложение на своем телефоне Samsung (пробовал как Android 4.2, так и 4.3), и здесь видео отображается в полноэкранном режиме.

Моя видеоактивность имеет следующее onCreate():

@Override public void onCreate(Bundle savedInstanceState) {
    mInstance = this;
    super.onCreate(savedInstanceState);

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN|
            WindowManager.LayoutParams.TYPE_APPLICATION_PANEL|
            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);

    mSurfaceView = new SurfaceView(this);
    setContentView(mSurfaceView);

    mSurfaceHolder = mSurfaceView.getHolder();
    mSurfaceHolder.addCallback(this);
    mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

    Intent intent = getIntent();
    mVideoPath = intent.getStringExtra("VIDEO_PATH");
    try {
        mMediaPlayer = new MediaPlayer();
        mMediaPlayer.setOnBufferingUpdateListener(this);
        mMediaPlayer.setOnCompletionListener(this);
        mMediaPlayer.setOnPreparedListener(this);
        mMediaPlayer.setOnVideoSizeChangedListener(this);
        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mMediaPlayer.setScreenOnWhilePlaying (true);
    }
    catch (Exception e) { e.printStackTrace(); }

}

... И следующее onVIdeoSizeChanged():

public void onVideoSizeChanged(MediaPlayer player, int width, int height) {
    Log.v(TAG, "MediaPlayer: onVideoSizeChanged called");
    if (width == 0 || height == 0) {
        Log.e(TAG, "invalid video width(" + width + ") or height(" + height + ")");
        return;
    }

    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, height, 0x11); //Gravity.CENTER

    mSurfaceView.setLayoutParams(params);
    mSurfaceView.requestLayout();
}

Что я делаю не так??? Любые предложения будут оценены, так как я действительно застрял здесь.


person Jon Helt-Hansen    schedule 22.11.2013    source источник
comment
Вы получаете какую-либо ошибку/исключение в logcat?   -  person Siddharth_Vyas    schedule 22.11.2013
comment
Насколько я вижу, в логарифме ошибок нет. Что-нибудь, о чем я должен знать? Logcat, который я сохранил, довольно длинный, поэтому не уверен, имеет ли смысл его публиковать.   -  person Jon Helt-Hansen    schedule 22.11.2013


Ответы (1)


Не знаю, относится ли это к устройству, которое я использую, но мне пришлось изменить следующий файл /sys/class/screen_mode, который поместил мое видео в полноэкранный режим.

person Jon Helt-Hansen    schedule 27.11.2013