src/js/libs/popcorn.mediafragment.js
branchpopcorn-port
changeset 216 d1e891627286
child 263 2d87a07fa3d0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/js/libs/popcorn.mediafragment.js	Wed Nov 09 14:49:20 2011 +0100
@@ -0,0 +1,54 @@
+// PLUGIN: Mediafragment
+
+(function ( Popcorn ) {
+
+  /**
+   * Mediafragment popcorn plug-in
+   * Adds (limited) support for mediafragment requests 
+   * to a popcorn video.  
+   * @param {Object} options
+   *
+  **/
+    Popcorn.plugin( "mediafragment" , {
+
+      manifest: {
+        about: {
+          name: "Popcorn mediafragment plugin",
+          version: "0.1",
+          author: "Karim Hamidou",
+          website: "http://neyret.fr/~karim"
+        },
+        options: {
+        }
+      },
+      
+    _setup: function( options ) {
+        var advanceTime = function() {
+              var url = window.location.href;
+              
+              if ( url.split("#")[1] != null ) {
+                  pageoffset = url.split( "#" )[1];							
+                  
+                  if ( pageoffset.substring( 2 ) != null ) {
+                    var offsettime = pageoffset.substring( 2 );						
+                    this.currentTime(parseFloat(offsettime));
+                  }							
+              }
+        }
+        
+        var updateTime = function() {
+            splitArr = window.location.href.split("#")			
+            history.replaceState({}, "", splitArr[0] + "#t=" + this.currentTime().toFixed(2));
+        };
+        
+        this.listen( 'loadedmetadata', advanceTime );        
+        this.listen("pause", updateTime);
+        this.listen("seeked", updateTime);
+        
+    },
+
+    _teardown: function( options ) {
+      // FIXME: anything to implement here ?
+    }
+  });
+})( Popcorn );