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)); } } 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; };