[Media] stop, pause, getCurrentPosition implementation
authorLukasz Foniok <l.foniok@samsung.com>
Tue, 3 Nov 2015 13:13:28 +0000 (14:13 +0100)
committerLukasz Foniok <l.foniok@samsung.com>
Wed, 4 Nov 2015 12:21:05 +0000 (13:21 +0100)
Change-Id: I983df986de84bd1677411a76624d0c3824dc88db
Signed-off-by: Lukasz Foniok <l.foniok@samsung.com>
src/media/cordova_media_api.js

index 882b590..528b705 100755 (executable)
@@ -108,10 +108,44 @@ cordova.define(plugin_name, function(require, exports, module) {
 
     audioObjects[id].play();
   },
-  stopPlayingAudio: function(successCallback, errorCallback, args) {},
+  stopPlayingAudio: function(successCallback, errorCallback, args) {
+      var id = args[0];
+
+      clearTimeout(audioObjects[id].timer);
+
+      audioObjects[id].pause();
+
+      if (audioObjects[id].currentTime !== 0)
+          audioObjects[id].currentTime = 0;
+
+      console.log("media::stopPlayingAudio() - MEDIA_STATE -> MEDIA_STOPPED");
+
+      audioObjects[id].removeEventListener('canplay', audioObjects[id].onCanPlayCB);
+      audioObjects[id].removeEventListener('ended', audioObjects[id].onEndedCB);
+      audioObjects[id].removeEventListener('timeupdate', audioObjects[id].onTimeUpdateCB);
+      audioObjects[id].removeEventListener('durationchange', audioObjects[id].onDurationChangeCB);
+      audioObjects[id].removeEventListener('playing', audioObjects[id].onPlayingCB);
+      audioObjects[id].removeEventListener('play', audioObjects[id].onPlayCB);
+      audioObjects[id].removeEventListener('error', audioObjects[id].onErrorCB);
+      audioObjects[id].removeEventListener('error', audioObjects[id].onStalledCB);
+
+      Media.onStatus(id, Media.MEDIA_STATE, Media.MEDIA_STOPPED);
+  },
   seekToAudio: function(successCallback, errorCallback, args) {},
-  pausePlayingAudio: function(successCallback, errorCallback, args) {},
-  getCurrentPositionAudio: function(successCallback, errorCallback, args) {},
+  pausePlayingAudio: function(successCallback, errorCallback, args) {
+      var id = args[0];
+
+      console.log("media::pausePlayingAudio() - MEDIA_STATE -> MEDIA_PAUSED");
+
+      audioObjects[id].pause();
+
+      Media.onStatus(id, Media.MEDIA_STATE, Media.MEDIA_PAUSED);
+  },
+  getCurrentPositionAudio: function(successCallback, errorCallback, args) {
+      var id = args[0];
+      console.log("media::getCurrentPositionAudio()");
+      successCallback(audioObjects[id].currentTime);
+  },
   startRecordingAudio: function(successCallback, errorCallback, args) {},
   stopRecordingAudio: function(successCallback, errorCallback, args) {},
   release: function(successCallback, errorCallback, args) {},