|
1 <html> |
|
2 <head> |
|
3 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> |
|
4 <script type="text/javascript" src="jquery-1.3.2.min.js"></script> |
|
5 <script type="text/javascript" src="flowplayer-3.1.2.min.js"></script> |
|
6 <script type="text/javascript" src="tagtool.js"></script> |
|
7 <script type="text/javascript" src="segments.js"></script> |
|
8 <link rel="stylesheet" type="text/css" href="style.css"> |
|
9 |
|
10 |
|
11 |
|
12 <style type="text/css"> |
|
13 .seg_container { |
|
14 margin: 10px; |
|
15 } |
|
16 |
|
17 .segtimeline { |
|
18 width: 500px; |
|
19 height:15px; |
|
20 border: 1px solid black; |
|
21 } |
|
22 |
|
23 .segtimeline > div { |
|
24 height: 15px; |
|
25 background: black; |
|
26 } |
|
27 |
|
28 .seghiglighted { |
|
29 background: #ffcc33 !important; |
|
30 } |
|
31 |
|
32 </style> |
|
33 |
|
34 |
|
35 <title>Marquer un extrait</title> |
|
36 |
|
37 <script type="text/javascript"> |
|
38 |
|
39 // Charge le player |
|
40 flowplayer("player", "flowplayer-3.1.2.swf", |
|
41 { |
|
42 clip: {url: "xxy.f4v", |
|
43 autoPlay: false, |
|
44 autoBuffering: true, |
|
45 onSeek: function() { |
|
46 playerSeek(); |
|
47 } |
|
48 }, |
|
49 |
|
50 plugins: { |
|
51 |
|
52 content: {url: "flowplayer.content-3.1.0.swf", |
|
53 backgroundColor: 'transparent', |
|
54 display: 'none', |
|
55 style: {p: {fontSize: 15}} |
|
56 } |
|
57 |
|
58 }, |
|
59 |
|
60 onLoad: function() { |
|
61 playerLoaded(this); |
|
62 }, |
|
63 |
|
64 onUnload: function() { |
|
65 playerUnloaded(this); |
|
66 }, |
|
67 onError: function(code,msg) { |
|
68 alert(msg); |
|
69 }, |
|
70 }); |
|
71 |
|
72 |
|
73 function loadSegments() { |
|
74 |
|
75 if ($f().getClip() == undefined) { |
|
76 window.setTimeout("loadSegments()",2000); |
|
77 return false; |
|
78 } |
|
79 |
|
80 var duration = Math.round($f().getClip().fullDuration*10) * 100; |
|
81 |
|
82 |
|
83 var segments = tagTool.segments; |
|
84 |
|
85 for (seg in segments) { |
|
86 var segd = segments[seg].sout - segments[seg].sin; |
|
87 var percent = Math.round(segd * 100 / duration); |
|
88 var offset = Math.round(segments[seg].sin * 100 / duration); |
|
89 var c = $('#seg_container_template').clone().removeAttr("id"); |
|
90 $("#segments").append(c); |
|
91 $("span", c).html('<strong>' + tagTool.segments[seg].tag +'</strong> par ' + segments[seg].user); |
|
92 $("#seg_0", c).css({'margin-left': offset+'%', 'width': percent+'%'}) |
|
93 .attr('id', 'seg_' + seg) |
|
94 .click(function() { |
|
95 seg_id = $(this).attr("id"); |
|
96 seg_id = seg_id.substr(seg_id.indexOf('_') + 1); |
|
97 tagTool.playSegment(seg_id, $("#pauseAfter").val()); |
|
98 }); |
|
99 c.show(); |
|
100 } |
|
101 } |
|
102 |
|
103 |
|
104 function playerSeek() { |
|
105 tagTool.rebuildCurrentTags(tagTool.player.getTime() * 1000); |
|
106 } |
|
107 |
|
108 |
|
109 function playerLoaded(player) { |
|
110 // Charge les tags |
|
111 $("#segmentMarkerButtons").css("opacity",1); |
|
112 $("#btMarkIn").removeAttr("disabled"); |
|
113 $.getJSON("loadtags.php", "", function(data) { |
|
114 tagTool.segments = data; |
|
115 tagTool.setupHandlers($f("player")); |
|
116 window.setTimeout("loadSegments()", 2000); |
|
117 }); |
|
118 |
|
119 tagTool.player = $f("player"); |
|
120 tagTool.showTagInPage = false; |
|
121 |
|
122 } |
|
123 |
|
124 |
|
125 </script> |
|
126 |
|
127 </head> |
|
128 <body> |
|
129 <div id="page"> |
|
130 <h1>Marquer un extrait</h1> |
|
131 <p>Cette page vous permet de marquer un passage de la vidéo avec un mot clé</p> |
|
132 |
|
133 <div style="display:block;width:520px;height:330px;background:#aaa;" id="player"> |
|
134 </div> |
|
135 |
|
136 |
|
137 <p id="segmentMarkerButtons" style="text-align:center;opacity:0.5"> |
|
138 <button type="button" id="btMarkIn" disabled onClick="segmentMarker.markIn()"> |
|
139 Marquer le début |
|
140 </button> |
|
141 <button type="button" id="btMarkOut" disabled onClick="segmentMarker.markOut()"> |
|
142 Marquer la fin |
|
143 </button> |
|
144 <button type="button" id="btPlaySegment" disabled onClick="segmentMarker.playSegment()"> |
|
145 Lire la séquence |
|
146 </button> |
|
147 </p> |
|
148 |
|
149 <form action="savetag.php" method="post" id="segmentForm" style="display: none;"> |
|
150 <h2>Enregistrer votre segment</h2> |
|
151 <p>Vous aller créer un segment, entre <span id="mkin">0</span> et <span id="mkout">0</span>.</p> |
|
152 <p style="text-align: center;"> |
|
153 Votre tag : <input type="text" id="usertag" name="usertag" /> |
|
154 Nom d'utilisateur : <input type="text" id="username" name="username" value="visteur" /> |
|
155 <input type="hidden" name="xtid" value="<?php echo extract.id;?>" /> |
|
156 <input type="hidden" name="timein" id="frmIn" value="0" /> |
|
157 <input type="hidden" name="timeout" id="frmOut" value="0" /> |
|
158 <input type="submit" value="Enregistrer" /> |
|
159 </p> |
|
160 </form> |
|
161 |
|
162 |
|
163 <h2>Segments</h2> |
|
164 <p>Segments déjà créés. Cliquez sur un segment pour le lire.</p> |
|
165 <p><input type="checkbox" id="pauseAfter" checked /> Faire une pause à la fin du segment</p> |
|
166 |
|
167 <div id="segments"> |
|
168 |
|
169 <div class="seg_container" id="seg_container_template" style="display: none"> |
|
170 <span class="tagname">Tag</span> |
|
171 <div class="segtimeline"> |
|
172 <div id="seg_0">.</div> |
|
173 </div> |
|
174 |
|
175 </div> |
|
176 |
|
177 <div id="dbg"> |
|
178 <ul> |
|
179 </ul> |
|
180 </div> |
|
181 </body> |
|
182 </html> |