MediaController setAnchorview охватывает весь экран

1

Эй, Я пытаюсь исправить ошибку в проекте. Они вызвали к существованию mediacontroller и установили его якорный вид для просмотра видео.

Но когда я воспроизвожу видео, mediacontroller рисуется по всему экрану и не плавает над видеоизображением, как предполагает документация.

код:

    MediaController mediaController = new MediaController(mVideoView.getContext());
    mediaController.setAnchorView(mVideoView);

    mVideoView.setMediaController(mediaController);

И XML;

     <VideoView
        android:layout_width="854px"
        android:layout_weight="1"
        android:id="@+id/welcome_video"
        android:layout_height="480px"
        android:layout_gravity="center"
    ></VideoView>

Я не вижу, что здесь не так. Кто-нибудь знает, как это исправить?

Теги:
android-layout

2 ответа

3
Лучший ответ

Я исправил эту проблему, это было связано с LinearLayout, которое было у VideoView. Он был установлен как match_parent, а не wrap_content.

1

Более подробный ответ:

Оберните видеообзор с помощью LinearLayout

<LinearLayout
    android:id="@+id/media_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true">

    <VideoView
        android:id="@+id/live_video"
        android:layout_width="match_parent"
        android:layout_height="240dp"
         />

</LinearLayout>

просто установитеAnchor() на LinearLayout

mediaLayout = (LinearLayout)view.findViewById(R.id.media_layout);
liveVideo = (VideoView) view.findViewById(R.id.device_live_video);
mc = new MediaController(getActivity());
// Here it is
mc.setAnchorView(mediaLayout);

liveVideo.requestFocus();

liveVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

    @Override
    public void onPrepared(MediaPlayer mp) {
        mp.setOnVideoSizeChangedListener(new MediaPlayer.OnVideoSizeChangedListener() {
            @Override
            public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
                LogUtils.LOGD(TAG, "Media Player Video Size changed.");
                  /*
                   *  add media controller
                   */
                liveVideo.setMediaController(mc);
                  /*
                   * and set its position on screen
                   */
                //mc.setAnchorView(liveVideo);
            }
        });
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню