加载时,ExoPlayer会填满整个屏幕

时间:2018-10-07 09:48:20

标签: android exoplayer exoplayer2.x

我有一个PlayerView,它以纵向方向占据Fragment的上半部分,而屏幕的下半部分显示了一些文本。该片段是ViewPager的一部分,用户可以切换带有不同视频的屏幕。

问题:每当片段第一次加载到屏幕上时,PlayerView就会在很短的时间内就充满整个屏幕。

到目前为止我发现的结果:问题很可能出在我的layout_height="wrap_content"的属性PlayerView中。加载时,它可能不知道确切的高度,并且无法填满整个屏幕。如果我将layout_height更改为某个静态值,问题就消失了,但是我需要它来包装内容(可能是视频的高度不同,所以我不能使用静态值)。

问题:如何防止PlayerView在加载时填满整个屏幕?或者可能有解决方法?任何帮助表示赞赏。

这是布局的外观

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.exoplayer2.ui.PlayerView
        android:id="@+id/video_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@id/video_view"
        android:scrollbars="vertical" />

</RelativeLayout>

在片段代码中,我有:

@Override
public void onStart() {
    ...
    SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(
            getActivity(), new DefaultTrackSelector()
    );
    player.prepare(mediaSource);
    playerView.setPlayer(player);
    ...
}

0 个答案:

没有答案