ExoPlayer中的自定义TimeBar

我想使用以下的PlayerView在exoplayer中创建自定义时间栏:

  1. 不能被用户拖动,而只能显示视频中的进度

更新:好的,所以我能够通过将touch_target_height设置为0dp来禁用拖动!

  1. 允许底层的PlayerView可点击(由于顶部的控制器,我失去了PlayerView的可点击性)
  2. 始终显示在PlayerView曲面上(自定义控制器仅在单击PlayerView一次时出现)

我尝试在自定义控制器布局中使用DefaultTimeBar,但无法禁用对时间栏的拖动。另外,只有在我到目前为止尝试了以下操作时,才会显示控制器:

在布局XML的PlayerView组件上,添加了以下内容以禁止隐藏控制器,但仍需要首次单击PlayerView才能显示控制器。

app:show_timeout="0"
app:hide_on_touch="false"

我需要捕获PlayerView上的onClick事件,直到引入自定义控制器布局为止。我有既可聚焦又可点击的PlayerView

android:focusable="true"
android:clickable="true"

此外,为了尝试在DefaultTimeBar中禁用时间栏的拖动,我做了以下操作,但它仅从时间栏中删除了拇指(或洗涤器),而没有禁用拖动:

app:scrubber_enabled_size="0dp"
app:scrubber_disabled_size="0dp"
app:scrubber_dragged_size="0dp"

关于如何做这三件事的任何想法?

谢谢

AB

songweixu 回答:ExoPlayer中的自定义TimeBar

关于第三件事,您可以尝试以编程方式进行。

您可以在DefaultTimeBar中使用此方法:

  • onScrubStart(...)
  • onScrubMove(...)
  • onScrubStop(...)

并为它们中的每个实现您的逻辑(也许简单的返回就足够了)。

请查看此链接以获取更多详细信息:OnScrubListener

本文链接:https://www.f2er.com/3145347.html

大家都在问