| author | hamidouk |
| Wed, 21 Dec 2011 11:22:47 +0100 | |
| branch | lab-port |
| changeset 495 | 41a9f7b27952 |
| parent 263 | 2d87a07fa3d0 |
| permissions | -rw-r--r-- |
| 216 | 1 |
// PLUGIN: Mediafragment |
2 |
||
3 |
(function ( Popcorn ) { |
|
4 |
||
5 |
/** |
|
6 |
* Mediafragment popcorn plug-in |
|
|
263
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
7 |
* Adds (limited) support for mediafragment requests |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
8 |
* to a popcorn video. |
| 216 | 9 |
* @param {Object} options |
10 |
* |
|
11 |
**/ |
|
12 |
Popcorn.plugin( "mediafragment" , { |
|
13 |
||
14 |
manifest: { |
|
15 |
about: { |
|
16 |
name: "Popcorn mediafragment plugin", |
|
17 |
version: "0.1", |
|
18 |
author: "Karim Hamidou", |
|
19 |
website: "http://neyret.fr/~karim" |
|
20 |
}, |
|
21 |
options: { |
|
22 |
} |
|
23 |
}, |
|
|
263
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
24 |
|
| 216 | 25 |
_setup: function( options ) { |
26 |
var advanceTime = function() { |
|
27 |
var url = window.location.href; |
|
|
263
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
28 |
|
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
29 |
if ( url.split( "#" )[ 1 ] != null ) { |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
30 |
pageoffset = url.split( "#" )[1]; |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
31 |
|
| 216 | 32 |
if ( pageoffset.substring( 2 ) != null ) { |
|
263
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
33 |
var offsettime = pageoffset.substring( 2 ); |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
34 |
this.currentTime( parseFloat( offsettime ) ); |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
35 |
} |
| 216 | 36 |
} |
37 |
} |
|
|
263
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
38 |
|
| 216 | 39 |
var updateTime = function() { |
|
263
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
40 |
var history = window.history; |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
41 |
if ( !history.pushState ) { |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
42 |
return false; |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
43 |
} |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
44 |
|
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
45 |
splitArr = window.location.href.split( "#" ) |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
46 |
history.replaceState( {}, "", splitArr[0] + "#t=" + this.currentTime().toFixed( 2 ) ); |
| 216 | 47 |
}; |
|
263
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
48 |
|
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
49 |
this.listen( "loadedmetadata", advanceTime ); |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
50 |
this.listen( "pause", updateTime ); |
|
2d87a07fa3d0
bumped plugin version to support non-html5 browsers.
hamidouk
parents:
216
diff
changeset
|
51 |
this.listen( "seeked", updateTime ); |
| 216 | 52 |
}, |
53 |
||
54 |
_teardown: function( options ) { |
|
55 |
// FIXME: anything to implement here ? |
|
56 |
} |
|
57 |
}); |
|
58 |
})( Popcorn ); |