我想爲ExoPlayer實施一個清理程序,以顯示用戶正在尋找的位置的縮略圖預覽。雖然我目前的實施工作正在進行,但縮略圖僅在用戶停止拖動seekbar視圖或暫停一會之後刷新。看起來好像ExoPlayer上的seek命令正在實現類似debounce功能的東西,以防止連續搜索太多搜索。在ExoPlayer上快速查找
雖然我可以通過在seekbar回調中自行調節並每隔x毫秒發送一次查找請求來解決此問題,但我想知道是否有方法可以告訴ExoPlayer不要刪除查找請求,以便縮略圖可以實時更新。
供參考,這是我目前的執行:
主題節流:
private final Subject<Long> subject = PublishSubject.create();
觀察員尋求與節流請求:
subject
.throttleLast(400L, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(position -> exoPlayer.seekTo(position));
搜索欄回調:
@Override
public void onProgressChanged(@NonNull final SeekBar seekBar,
final int progress,
final boolean fromUser) {
if (fromUser) {
final long position = computePosition(progress);
subject.onNext(position);
}
}
感謝您的指點。 seekbar本身不會幫助,因爲問題在ExoPlayer本身內,但很可能是自定義加載控制在這裏有幫助,我會調查該方法。 – Francesc
很酷,讓我知道你是怎麼做出來的,@Francesc。 –
使用指示播放器更快開始播放的自定義負載控制(僅緩衝了50ms的視頻後)沒有幫助。玩家反彈尋求請求似乎仍然是一個問題,看起來我必須深入研究玩家代碼以瞭解它如何快速連續地處理多個查找請求。 – Francesc