Ich möchte einen Scrubber für ExoPlayer implementieren, um eine Miniaturansicht der Position anzuzeigen, die der Benutzer sucht. Während meine aktuelle Implementierung funktioniert, wird das Miniaturbild nur dann aktualisiert, wenn der Benutzer den Suchbereich nicht mehr gezogen oder für einen Moment angehalten hat. Es scheint, als ob der Suchbefehl auf dem ExoPlayer etwas wie eine Entprellfunktion implementiert, um zu viele Suchvorgänge nacheinander zu verhindern.Schnellsuche auf ExoPlayer
Während ich dies umgehen kann, indem ich meine eigenen Drosselung auf den Seekbar Callback und senden Sie eine Suchanforderung alle x Millisekunden, würde ich gerne wissen, ob es eine Möglichkeit, ExoPlayer zu sagen, keine Suchanfragen fallen lassen, so dass die Miniaturansicht kann Aktualisierung in Echtzeit.
als Referenz, das ist meine aktuelle Implementierung:
Betreff für die Drosselung:
private final Subject<Long> subject = PublishSubject.create();
Observer für mit Drosselung Anfragen suchen:
subject
.throttleLast(400L, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(position -> exoPlayer.seekTo(position));
SeekBar Rückruf:
@Override
public void onProgressChanged(@NonNull final SeekBar seekBar,
final int progress,
final boolean fromUser) {
if (fromUser) {
final long position = computePosition(progress);
subject.onNext(position);
}
}
Danke für diese Zeiger. Die Suchleiste selbst wird nicht helfen, da das Problem im ExoPlayer selbst liegt, aber es kann gut sein, dass die benutzerdefinierte Ladesteuerung hier hilft, ich werde diesen Ansatz untersuchen. – Francesc
Cool, lassen Sie mich wissen, wie Sie ausmachen, @Francesc. –
Die Verwendung einer benutzerdefinierten Ladesteuerung, die den Player anweist, die Wiedergabe früher zu starten (nachdem nur 50ms Video gepuffert wurden), hat nicht geholfen. Es scheint immer noch ein Problem zu sein, dass der Spieler Suchanfragen entlarvt, es sieht so aus, als müsste ich in den Spielercode eintauchen, um herauszufinden, wie er mehrere Suchanfragen in schneller Folge bearbeitet. – Francesc