1 /* exemple de code pour ajouter le support d'un autre player flash. |
|
2 Le code était fait à la base pour allociné, étendez le si vous en |
|
3 avez besoin. |
|
4 */ |
|
5 |
|
6 /* Il faut étendre cette classe pour que le metadataplayer supporte le player |
|
7 allocine. Pour l'instant, le code présent est celui pour le jwplayer |
|
8 */ |
|
9 IriSP.PopcornReplacement.allocine = function(container, options) { |
|
10 /** |
|
11 * Ce constructeur reçoit deux paramètres : |
|
12 * - container est une chaine de caractère indiquant l'id du div dans lequel il |
|
13 * doit s'initialiser |
|
14 * - options est un dictionnaire contenant les options de configuration du player |
|
15 * (correspond à la partie de configuration du player dans polemic.htm) |
|
16 */ |
|
17 |
|
18 /** |
|
19 appel du parent pour initialiser les structures communes à tous les players - |
|
20 obligatoire. |
|
21 */ |
|
22 IriSP.PopcornReplacement.player.call(this, container, options); |
|
23 |
|
24 this.media.duration = options.duration; /* optionnel */ |
|
25 |
|
26 /* Préservation de this, au cas où */ |
|
27 var _this = this; |
|
28 |
|
29 /** Déclaration au player des fonctions que l'api flash expose - brièvement: |
|
30 * - play et pause ne prennent pas de paramètres |
|
31 * - lorsque le metadataplayer appelle getPosition, le player flash doit retourner |
|
32 * la durée depuis le début en secondes, |
|
33 * - seek reçoit en paramètre la position en secondes depuis le début de la |
|
34 * vidéo vers laquelle on veut seeker. |
|
35 * - getMute retourne true si le player est muté et false sinon |
|
36 * - setMute prend un paramètre. Si celui-ci est true la vidéo doit etre mutée, |
|
37 * sinon le son doit être activé. |
|
38 * |
|
39 * NB: les valeurs de retour ne sont utilisés quand pour getPosition et getMute. |
|
40 */ |
|
41 this.playerFns = { |
|
42 play: function() { return jwplayer(this.container).play(); }, |
|
43 pause: function() { return jwplayer(this.container).pause(); }, |
|
44 getPosition: function() { return jwplayer(this.container).getPosition(); }, |
|
45 seek: function(pos) { return jwplayer(this.container).seek(pos); }, |
|
46 getMute: function() { return jwplayer(this.container).getMute() }, |
|
47 setMute: function(p) { return jwplayer(this.container).setMute(p); } |
|
48 } |
|
49 |
|
50 /* Déclaration des callbacks au jwplayer - ces callbacks sont appelés par le |
|
51 * player flash au moment où les évenements correspondants sont declenchés. |
|
52 * le dictionnaire this.callbacks |
|
53 * contient cinq entrées : onReady, onTime, onPlay, onPause, onSeek. |
|
54 * |
|
55 * - onReady est une fonction qui ne prend pas de paramètres et qui est appellée |
|
56 * quand le player flash a fini de s'initialiser. |
|
57 * - onTime est appelée périodiquement (par ex, toutes les demi-secondes). Elle |
|
58 * reçoit en paramètre un dictionnaire qui doit contenir un champ nommé position |
|
59 * qui contient le temps écoulé depuis le début de la vidéo. |
|
60 * - onPlay est appelé quand le player commence ou reprend la lecture. Le callback |
|
61 * ne prend pas de paramètres. |
|
62 * - onPause est appellé quand le player entre en état pausé. Le callback ne prend |
|
63 * pas de paramètres. |
|
64 * - onSeek est appelé quand le player flash seeke une vidéo. Il reçoit en |
|
65 * paramètre un object contenant deux entrées : |
|
66 * - position: la position en secondes depuis le début de la vidéo au moment où l'on seeke |
|
67 * - offset: la position cible en secondes depuis le début de la vidéo. |
|
68 * |
|
69 * Pour réference, voici la doc des évenements proposés par le jwplayer : |
|
70 * http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/12540/javascript-api-reference#Events |
|
71 */ |
|
72 options.events = this.callbacks; |
|
73 |
|
74 /* initialisation du player dans le div qui possède l'id this.container - |
|
75 a remplacer par un appel à swfobject par exemple */ |
|
76 jwplayer(this.container).setup(options); |
|
77 }; |
|
78 |
|
79 /* Obligatoire pour l'héritage - ne pas modifier */ |
|
80 IriSP.PopcornReplacement.allocine.prototype = new IriSP.PopcornReplacement.player("", {}); |
|