From 2c966fe7ad1965688e65aa72517f27051685588b Mon Sep 17 00:00:00 2001 From: Param Aggarwal Date: Sat, 17 Feb 2018 19:37:31 +0530 Subject: [PATCH 1/2] Fix playableDuration attribute of onProgress event --- .../main/java/com/brentvatne/exoplayer/ReactExoplayerView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index f24d94c2..fed6ddbb 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -113,7 +113,7 @@ class ReactExoplayerView extends FrameLayout implements && player.getPlayWhenReady() ) { long pos = player.getCurrentPosition(); - eventEmitter.progressChanged(pos, player.getBufferedPercentage()); + eventEmitter.progressChanged(pos, player.getBufferedPosition()); msg = obtainMessage(SHOW_PROGRESS); sendMessageDelayed(msg, Math.round(mProgressUpdateInterval)); } From 489b16f11e5474c3adeafdf948d5e785d0b031d1 Mon Sep 17 00:00:00 2001 From: Hampton Maxwell Date: Thu, 17 May 2018 14:12:04 -0700 Subject: [PATCH 2/2] Base bufferedDuration on percentage & total duration. Add seekableDuration --- .../java/com/brentvatne/exoplayer/ReactExoplayerView.java | 3 ++- .../main/java/com/brentvatne/exoplayer/VideoEventEmitter.java | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index fed6ddbb..44e7a9ee 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -113,7 +113,8 @@ class ReactExoplayerView extends FrameLayout implements && player.getPlayWhenReady() ) { long pos = player.getCurrentPosition(); - eventEmitter.progressChanged(pos, player.getBufferedPosition()); + long bufferedDuration = player.getBufferedPercentage() * player.getDuration(); + eventEmitter.progressChanged(pos, bufferedDuration, player.getDuration()); msg = obtainMessage(SHOW_PROGRESS); sendMessageDelayed(msg, Math.round(mProgressUpdateInterval)); } diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/VideoEventEmitter.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/VideoEventEmitter.java index b2ee4a15..ff3b4555 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/VideoEventEmitter.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/VideoEventEmitter.java @@ -89,6 +89,7 @@ class VideoEventEmitter { private static final String EVENT_PROP_DURATION = "duration"; private static final String EVENT_PROP_PLAYABLE_DURATION = "playableDuration"; + private static final String EVENT_PROP_SEEKABLE_DURATION = "seekableDuration"; private static final String EVENT_PROP_CURRENT_TIME = "currentTime"; private static final String EVENT_PROP_SEEK_TIME = "seekTime"; private static final String EVENT_PROP_NATURAL_SIZE = "naturalSize"; @@ -141,10 +142,11 @@ class VideoEventEmitter { receiveEvent(EVENT_LOAD, event); } - void progressChanged(double currentPosition, double bufferedDuration) { + void progressChanged(double currentPosition, double bufferedDuration, double seekableDuration) { WritableMap event = Arguments.createMap(); event.putDouble(EVENT_PROP_CURRENT_TIME, currentPosition / 1000D); event.putDouble(EVENT_PROP_PLAYABLE_DURATION, bufferedDuration / 1000D); + event.putDouble(EVENT_PROP_SEEKABLE_DURATION, seekableDuration / 1000D); receiveEvent(EVENT_PROGRESS, event); }