Exoplayer-如何仅播放在FragmentStatePagerAdapter中可见的当前屏幕?

问题描述 投票:0回答:1

我正在Exoplayer中使用FragmentStatePagerAdapter。我的主要目标是加载下一页,但是不要在该页面上播放视频。现在在我的ViewFragmentr的VideoFragment中,我正在其中播放视频onCreateView

player = new SimpleExoPlayer.Builder(mContext).build();
player.setPlayWhenReady(true);
player.setRepeatMode(Player.REPEAT_MODE_ONE);
playerView.setPlayer(player);

addListenerToPlayer();

DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(mContext,
           Util.getUserAgent(mContext, "yourApplicationName"));
Uri uri = Uri.parse(mUrl);

MediaSource videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
player.prepare(videoSource);

如何设置我的exoplayer和适配器,使其仅播放当前屏幕?

android android-viewpager exoplayer exoplayer2.x fragmentstatepageradapter
1个回答
0
投票

在您的初始配置中用player.setPlayWhenReady(true);替换player.setPlayWhenReady(false);,因为它指示播放器实例在准备好播放后立即播放媒体。

根据Player.STATE_READY上的文档:

播放器可以立即从当前位置播放。的如果getPlayWhenReady()为true,则播放器将播放,并已暂停否则。

此外,您应该设置PageChangeListenerPageChangeCallback(取决于您使用的是ViewPager的版本),以监视ViewPager中当前选择的页面,而不选择哪个页面。对于所选页面,您可以设置其相应的exoplayer实例以使用player.setPlayWhenReady(true)播放视频。在片段的每个onPause(...)生命周期方法中暂停播放器也是一个好主意。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.