gpt4 book ai didi

android - ExoPlayer 中的自定义时间栏

转载 作者:行者123 更新时间:2023-12-04 23:58:05 32 4
gpt4 key购买 nike

我想使用 PlayerView 在 exoplayer 中创建一个自定义时间栏:

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

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

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

我尝试在自定义 Controller 布局中使用 DefaultTimeBar,但无法禁用时间栏的拖动。此外, Controller 仅在点击时显示,到目前为止我已经尝试了以下操作:

在布局 XML 的 PlayerView 组件上,添加了以下内容以禁用隐藏 Controller ,但仍需要第一次单击 PlayerView 才能显示 Controller 。

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

我需要在 PlayerView 上捕获 onClick 事件,在我引入自定义 Controller 布局之前我能够捕获该事件。我有 PlayerView 既可聚焦又可点击

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

此外,为了在 DefaultTimeBar 中禁用拖动时间栏,我执行了以下操作,但它仅从时间栏中删除了拇指(或 slider ),并没有禁用拖动:

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

关于如何做这三件事有什么想法吗?

谢谢,

AB

最佳答案

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

您可以在 DefaultTimeBar 中验证此方法:

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

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

请查看此链接了解更多详情:OnScrubListener

关于android - ExoPlayer 中的自定义时间栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58747620/

32 4 0