From 66bba83d4f2593b4f7711949059cb06cfe6987e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Parra?= Date: Mon, 26 Jun 2017 23:55:17 -0400 Subject: [PATCH 1/2] Implements setOnSeekCompleteListener --- .../src/main/java/com/zmxv/RNSound/RNSoundModule.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/zmxv/RNSound/RNSoundModule.java b/android/src/main/java/com/zmxv/RNSound/RNSoundModule.java index 698032c1..ac75d062 100644 --- a/android/src/main/java/com/zmxv/RNSound/RNSoundModule.java +++ b/android/src/main/java/com/zmxv/RNSound/RNSoundModule.java @@ -3,6 +3,7 @@ import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.media.MediaPlayer.OnErrorListener; +import android.media.MediaPlayer.OnSeekCompleteListener; import android.net.Uri; import android.media.AudioManager; @@ -217,9 +218,15 @@ public void setSpeed(final Integer key, final Float speed) { } @ReactMethod - public void setCurrentTime(final Integer key, final Float sec) { - MediaPlayer player = this.playerPool.get(key); + public void setCurrentTime(final Integer key, final Float sec, final Callback callback) { + final MediaPlayer player = this.playerPool.get(key); if (player != null) { + player.setOnSeekCompleteListener(new OnSeekCompleteListener() { + @Override + public void onSeekComplete(MediaPlayer mp) { + callback.invoke(player.getCurrentPosition() * .001); + } + }); player.seekTo((int)Math.round(sec * 1000)); } } From e8f5fe6264e26a35802550fc0261333643fa65a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Parra?= Date: Mon, 26 Jun 2017 23:56:45 -0400 Subject: [PATCH 2/2] setCurrentTime pass a callback to the arguments --- sound.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound.js b/sound.js index d4b2f9e0..b62f260d 100644 --- a/sound.js +++ b/sound.js @@ -148,9 +148,9 @@ Sound.prototype.getCurrentTime = function(callback) { } }; -Sound.prototype.setCurrentTime = function(value) { +Sound.prototype.setCurrentTime = function(value, callback) { if (this._loaded) { - RNSound.setCurrentTime(this._key, value); + RNSound.setCurrentTime(this._key, value, callback); } return this; };