Skip to content

Commit f72ad15

Browse files
committed
Added a base to play the video.
From http://www.html5rocks.com/en/tutorials/video/basics/
1 parent f3b6a9c commit f72ad15

File tree

3 files changed

+90
-4
lines changed

3 files changed

+90
-4
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
.idea/
22
*.iml
3+
.gradle/
34
target/
45
build/
5-

src/main/webapp/index.html

Lines changed: 89 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,91 @@
1+
<!DOCTYPE html>
12
<html>
2-
<body>
3-
<h2>Hello World!</h2>
4-
</body>
3+
<head>
4+
<style>
5+
video, canvas {
6+
margin-top: 25px;
7+
width: 400px;
8+
height: 224px;
9+
border: 1px solid black;
10+
}
11+
</style>
12+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
13+
</head>
14+
<body>
15+
<video id="video-canvas-fancy" controls>
16+
<source src="video/video.webm" type='video/webm; codecs="vp8, vorbis"' />
17+
</video>
18+
<canvas id="canvas-copy-fancy"></canvas>
19+
<canvas id="canvas-draw-fancy"></canvas>
20+
<script>
21+
var video_dom = document.querySelector('#video-canvas-fancy');
22+
var canvas_copy = document.querySelector('#canvas-copy-fancy');
23+
var canvas_draw = document.querySelector('#canvas-draw-fancy');
24+
var draw_interval = null;
25+
var ctx_copy = null;
26+
var ctx_draw = null;
27+
28+
var offsets = [];
29+
var inertias = [];
30+
var slices = 4;
31+
var out_padding = 100;
32+
var interval = null;
33+
34+
var inertia = -2.0;
35+
36+
video_dom.addEventListener('canplay', function() {
37+
canvas_copy.width = canvas_draw.width = video_dom.videoWidth;
38+
canvas_copy.height = video_dom.videoHeight;
39+
canvas_draw.height = video_dom.videoHeight + out_padding;
40+
ctx_copy = canvas_copy.getContext('2d');
41+
ctx_draw = canvas_draw.getContext('2d');
42+
}, false);
43+
44+
45+
for (var i = 0; i < slices; i++) {
46+
offsets[i] = 0;
47+
inertias[i] = inertia;
48+
inertia += 0.4;
49+
}
50+
51+
video_dom.addEventListener('play', function() {
52+
processEffectFrame();
53+
if (interval == null) {
54+
interval = window.setInterval(function() { processEffectFrame() }, 33);
55+
}
56+
}, false);
57+
58+
function processEffectFrame() {
59+
var slice_width = video_dom.videoWidth / slices;
60+
ctx_copy.drawImage(video_dom, 0 ,0);
61+
ctx_draw.clearRect(0, 0, canvas_draw.width, canvas_draw.height);
62+
for (var i = 0; i < slices; i++) {
63+
var sx = i * slice_width;
64+
var sy = 0;
65+
var sw = slice_width;
66+
var sh = video_dom.videoHeight;
67+
var dx = sx;
68+
var dy = offsets[i] + sy + out_padding;
69+
var dw = sw;
70+
var dh = sh;
71+
ctx_draw.drawImage(canvas_copy, sx, sy, sw, sh, dx, dy, dw, dh);
72+
if (Math.abs(offsets[i] + inertias[i]) < out_padding) {
73+
offsets[i] += inertias[i];
74+
} else {
75+
inertias[i] = -inertias[i];
76+
}
77+
}
78+
};
79+
80+
video_dom.addEventListener('pause', function() {
81+
window.clearInterval(interval);
82+
interval = null;
83+
}, false);
84+
85+
video_dom.addEventListener('ended', function() {
86+
clearInterval(interval);
87+
}, false);
88+
</script>
89+
</body>
590
</html>
91+

src/main/webapp/video/.drop_videos_here

Whitespace-only changes.

0 commit comments

Comments
 (0)