MediaPlayer и полноэкранный режим

Ответить
AntonDev
Сообщения: 9
Зарегистрирован: 08 ноя 2015, 00:22

MediaPlayer и полноэкранный режим

Сообщение AntonDev » 08 ноя 2015, 00:33

Всем привет,
есть задача написать простое приложение для воспроизведения сетевых видео, нужна была кнопка развертывания видео на весь экран, стандартный MediaController такой не имеет, к тому же у него кнопка пауза почему-то не работает на таких видео стримах. По инструкции http://www.brightec.co.uk/ideas/custom- ... controller был создан свой MediaController, ненужные мне кнопки я закомментировал, теперь кнопка пауза работает, но вот в том примере метод, переводящий проигрыватель MediaPlayer в полноэкранный режим и обратно оказался пуст, подскажите как это сделать без прерывания воспроизведения, гугление этой темы выдает какие-то нереальные костыли, назначение которых мне как новичку непонятно. Приложение у меня работает только в landscape режиме. Здесь нашел способ http://stackoverflow.com/questions/2037 ... ull-screen, но у меня он не работает, да и способ странный через изменения режима положения.

Также хотелось бы сделать включение полноэкранного режима и выход из него двойным тапом по экрану.

Проигрыватель используется стандартный MediaPlayer, для отображения видео он использует компонент интерфейса SurfaceView

Код: Выделить всё

        <FrameLayout
            android:id="@+id/videoSurfaceContainer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <SurfaceView
                android:id="@+id/videoSurface"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </FrameLayout>

AntonDev
Сообщения: 9
Зарегистрирован: 08 ноя 2015, 00:22

Re: MediaPlayer и полноэкранный режим

Сообщение AntonDev » 08 ноя 2015, 03:20

нашел пример здесь http://dajver.blogspot.ru/2014/10/custo ... droid.html как раз рассматривается тот пример, что указал выше по ссылке, используется такой код:

Код: Выделить всё

    @Override
    public void toggleFullScreen() {
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoSurfaceContainer .getLayoutParams();
        params.width = metrics.widthPixels;
        params.height = metrics.heightPixels;
        params.leftMargin = 0;
        videoSurfaceContainer.setLayoutParams(params);

    }
но при таком подходе у меня увеличивается картинка внутри объекта FrameLayout

AntonDev
Сообщения: 9
Зарегистрирован: 08 ноя 2015, 00:22

Re: MediaPlayer и полноэкранный режим

Сообщение AntonDev » 08 ноя 2015, 03:35

еще такой немного другой вариант отсюда http://stackoverflow.com/questions/2037 ... ull-screen, но смысл тот же, и результат почти такой же, но хотя бы Media Controller остается на своем месте

Код: Выделить всё

    @Override
    public void toggleFullScreen() {
        setFullScreen(isFullScreen());
    }

    @Override
    public boolean isFullScreen() {
        if(mFullScreen){
            return false;
        }else{
            return true;
        }
    }

    public void setFullScreen(boolean fullScreen){
        fullScreen = false;

        if (mFullScreen) {
            DisplayMetrics displaymetrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
            android.widget.FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) videoSurface.getLayoutParams();
            params.width = displaymetrics.widthPixels;
            params.height = displaymetrics.heightPixels;
            params.setMargins(0, 0, 0, 0);
            mFullScreen = fullScreen;
        }
        else{
            DisplayMetrics displaymetrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
            final FrameLayout mFrame = (FrameLayout) videoSurfaceContainer;
            int height = mFrame.getHeight();
            int width = mFrame.getWidth();
            android.widget.FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) videoSurface.getLayoutParams();
            params.width = width;
            params.height= height;
            params.setMargins(0, 0, 0, 0);
            mFullScreen = !fullScreen;
        }
    }

AntonDev
Сообщения: 9
Зарегистрирован: 08 ноя 2015, 00:22

Re: MediaPlayer и полноэкранный режим

Сообщение AntonDev » 09 ноя 2015, 19:33

решил сделать ViewGroup Gone, поэтому картинка в таком случае занимает весь экран

Ответить