3

据我了解,版本 2.4.0 Exoplayer 的发布说明SeekBar已替换为DefaultTimeBar. https://github.com/google/ExoPlayer/blob/dev-v2/RELEASENOTES.md

如我所见,截至 2017 年 2 月 19 日:https ://github.com/bigexxx/ExoPlayer/blob/c5db6f39a6e07b4f98364ff40476e4e213172488/library/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java exo_progress 是 SeekBar 类型:

(第 285 行): progressBar = (SeekBar) findViewById(R.id.exo_progress);

现在:github.com/google/ExoPlayer/blob/release-v2/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java

这是:

(行:384):timeBar = (TimeBar) findViewById(R.id.exo_progress);

DefaultTimeBar 没有类似的方法.setThumb(),在我看来,拇指是CanvasdrawPlayhead(Canvas canvas).

问题:是否可以在中设置自己的拇指图标DefaultTimeBar

4

3 回答 3

13

我没有找到在 DefaultTimeBar 中设置拇指图标的选项。

您可以通过更改drawPlayhead(Canvas canvas)方法复制 DefaultTimeBar 并自定义拇指 。

你也可以通过添加exo_playback_control_view.xml来改变它的颜色。(洗涤器 == 拇指)

        <com.google.android.exoplayer2.ui.DefaultTimeBar
            android:id="@id/exo_progress"
            android:layout_width="0dp"
            android:layout_weight="1"
            app:scrubber_color="@color/scrubberColor"
            app:played_color="@color/playedColor"
            app:unplayed_color="@color/unplayedColor"
            app:buffered_color="@color/bufferedColor"
            android:layout_height="26dp"/>

有关自定义 ExoPlayer 的 UI 组件的更多信息:https ://medium.com/google-exoplayer/customizing-exoplayers-ui-components-728cf55ee07a

'

========== 更新 =================

可以使用以下属性来更改擦洗器可绘制对象:

    app:scrubber_drawable="@drawable/ic_scrubber"
    app:scrubber_enabled_size="24dp"
于 2017-10-10T14:50:27.367 回答
6

这个选项是 ExoPlayer 团队在提出后添加的。

app:scrubber_drawable="@drawable/ic_scrubber"
于 2018-07-09T11:47:47.177 回答
0

就我而言,我需要在聚焦时更改洗涤器(拇指)的颜色。所以我创建了一个像这样的 bg_progressbar_play_video

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_focused="true"
        android:drawable="@drawable/bg_progressbar_play_video_focused"/>

    <item android:drawable="@drawable/bg_progressbar_play_video_normal"/>
</selector>

这里是 bg_progressbar_play_video_normal

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <size
        android:width="14dp"
        android:height="14dp" />/
    <solid android:color="#ffffff" />

</shape>

和 bg_progressbar_play_video_focused

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    >
<size android:height="14dp" android:width="14dp"/>/
    <solid android:color="@android:color/holo_red_dark"/>
</shape>

这是我将可绘制对象添加到洗涤器的方式。

   <com.google.android.exoplayer2.ui.PlayerView
        android:id="@+id/videoPlayerView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="#000000"
        android:focusable="true"
        app:played_color="@android:color/holo_red_dark"
        app:scrubber_drawable="@drawable/bg_progressbar_play_video"
        app:layout_constraintDimensionRatio="16:9"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

如果您只需要更改scrubber(拇指)的颜色和启用大小,您可以使用以下属性:

 app:scrubber_enabled_size="24dp"
 app:scrubber_color="@android:color/holo_red_dark"

有关您可以自定义的这些属性的更多信息,请在此处阅读:https ://exoplayer.dev/doc/reference/com/google/android/exoplayer2/ui/DefaultTimeBar.html

于 2021-01-10T07:27:54.500 回答