ExoPlayer:控制前进和快退按钮的跳过间隔



我正在寻找一种为"前进"和"快退"按钮设置跳过间隔的方法。默认情况下,向前按会跳过 15 秒的视频,但按快退只会跳过 5 秒。我想将两者设置为 5 秒,但我找不到任何 API 来执行此操作。

问:如何覆盖ExoPlayer 2中"前进"和"快退"按钮的跳过间隔?

它应该是app:fastforward_increment="5000" 和app:rewind_increment="5000">

<com.google.android.exoplayer2.ui.SimpleExoPlayerView
android:id="@+id/item_comment_exo_player_view"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_gravity="center"
android:background="@color/black"
android:fitsSystemWindows="true"
android:paddingBottom="0dp"
android:paddingEnd="0dp"
android:paddingStart="0dp"
android:paddingTop="0dp"
app:controller_layout_id="@layout/custom_playback_control"
app:fastforward_increment="5000"
app:rewind_increment="5000"
app:show_timeout="2000" />

我尝试了指定的 XML 属性,但仍然面临同样的问题,即向前按跳过15 秒的视频,但按倒带只会跳过 5 秒

所以我覆盖了 Java 代码中属性的值,以将两者都设置为仅跳过 5 秒

// This will override the player controller XML attributes.
playerView.setFastForwardIncrementMs(5000);
playerView.setRewindIncrementMs(5000);

有关更多参考资料,请查看官方文档。

app:fastforward_increment="5000" 和app:rewind_increment="5000">现在是已弃用的代码,而不是使用它来实现倒带和转发功能。

只需将此代码添加到您的按钮点击侦听器上即可。

//switch case onClick listener for 'Forward' and 'Rewind'
case R.id.exo_rewind:
int rewind = (int) player.getCurrentPosition();
rewind = rewind - 10000; // 10000 = 10 Seconds
player.seekTo(rewind);
break;
case R.id.exo_forward:
int forward = (int) player.getCurrentPosition();
forward = forward + 10000; // 10000 = 10 Seconds
player.seekTo(forward);
break;

setFastForwardIncrementMs(或app:fastforward_increment(和setRewindIncrementMs(或app:rewind_increment(不再存在。

在 Media3 ExoPlayer 中,您可以在构建播放器时设置间隔:

Player player = new ExoPlayer.Builder(context)
.setSeekForwardIncrementMs(10000L)
.setSeekBackIncrementMs(10000L)
.build();

相关内容

  • 没有找到相关文章

最新更新