You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DefaultTimeBar seek does not increment/decrement seek position accurately.
[REQUIRED] Reproduction steps
ExoPlayer 2.9.3
Use DefaultTimeBar as seek time bar.
Set seek increment using setKeyTimeIncrement(long increment)
Set video on pause (not necessary, but it is easier to see the problem)
Seek DefaultTimeBar with left\right dpad keys.
Expected:
time label changes once for every key press
time on the label changes from INITIAL_TIME to INITIAL_TIME +- INCREMENT
Actual behavior:
time label changes twice for a single key press:
first time it changes for key press
second time it changes when buffering starts
time on the label both time is not as expected
As far as I understood the problem occurs because:
getScrubberPosition() is called twice for a single keypress and it operates on a different values, second time producing different result
incorrent calculations are probably related to scrubber having its own width.
[REQUIRED] Link to test content
Any contend can be used, but video should have large enough duration (I tested on 2 hours movie). When testing on short 30 seconds ad I did not see this issue.
[REQUIRED] A full bug report captured from the device
No crash is involved.
[REQUIRED] Version of ExoPlayer being used
Used 2.9.3
[REQUIRED] Device(s) and version(s) of Android being used
Android TV 8.0
Android 5.0 phone (called onKeyPressed() artifically from code)
The text was updated successfully, but these errors were encountered:
The problem is that we're re-using code designed for touch scrubbing for key press scrubbing.
The touch scrubbing code calculates playback positions from scrubber positions as the user drags the scrubber. This incurs a rounding error because the accuracy of the calculation is limited to however much time is represented by 1 pixel of seek bar. Note that the rounding errors will be larger for longer duration content. For touch based scrubbing this is fine and working as intended, since there's no way for a user to position the scrubber with sub-pixel granularity. However for key press scrubbing we should be able to seek accurately based on the specified increment. The solution is to separate out a different code path for this.
[REQUIRED] Issue description
DefaultTimeBar seek does not increment/decrement seek position accurately.
[REQUIRED] Reproduction steps
Expected:
Actual behavior:
As far as I understood the problem occurs because:
[REQUIRED] Link to test content
Any contend can be used, but video should have large enough duration (I tested on 2 hours movie). When testing on short 30 seconds ad I did not see this issue.
[REQUIRED] A full bug report captured from the device
No crash is involved.
[REQUIRED] Version of ExoPlayer being used
Used 2.9.3
[REQUIRED] Device(s) and version(s) of Android being used
Android TV 8.0
Android 5.0 phone (called onKeyPressed() artifically from code)
The text was updated successfully, but these errors were encountered: