Skip to content

Commit 0e06c17

Browse files
committed
fixed up mozilla support in both gum demos, also separated out gum.js to make things easier
1 parent 1b0b0f9 commit 0e06c17

File tree

3 files changed

+39
-59
lines changed

3 files changed

+39
-59
lines changed

demos/gum-canvas.html

+9-29
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
<canvas id="source"></canvas>
3232
<p id="gum">getUserMeda either not supported or not allowed - so instead here's me and my son headbanging.</p>
3333
</article>
34+
<script src="/js/gum.js"></script>
3435
<script>
35-
var video = document.querySelector('video'),
36-
source = document.getElementById('source').getContext('2d'),
36+
var source = document.getElementById('source').getContext('2d'),
3737
output = source, //document.getElementById('output').getContext('2d'),
3838
slider = document.getElementById('hue'),
3939
target = document.getElementById('target'),
@@ -85,32 +85,13 @@
8585
tb = rgb[2];
8686
};
8787

88-
function successCallback(stream) {
89-
window.stream = stream;
90-
if (window.webkitURL) {
91-
video.src = window.webkitURL.createObjectURL(stream);
92-
} else {
93-
video.src = stream;
94-
}
95-
video.play();
96-
}
97-
98-
function errorCallback(error) {
99-
console.error('An error occurred: [CODE ' + error.code + ']');
100-
return;
101-
}
102-
103-
function init() {
104-
// from HTML5 Doctor article: http://html5doctor.com/getusermedia/
105-
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
106-
if (navigator.getUserMedia) {
107-
navigator.getUserMedia({ video: true }, successCallback, errorCallback);
108-
}
109-
}
110-
88+
// note: video is defined in gum.js
11189
video.addEventListener('loadedmetadata', function () {
112-
source.canvas.width = video.videoWidth;
113-
source.canvas.height = video.videoHeight;
90+
// due to bug in Chrome: http://crbug.com/168700
91+
if (video.videoWidth) {
92+
source.canvas.width = video.videoWidth;
93+
source.canvas.height = video.videoHeight;
94+
}
11495
draw();
11596
});
11697

@@ -148,10 +129,9 @@
148129
var article = video.parentNode,
149130
gum = document.getElementById('gum');
150131

151-
if (navigator.getUserMedia || navigator.webkitGetUserMedia) {
132+
if (navigator.getUserMedia) {
152133
article.removeChild(gum);
153134
article.className = 'supported';
154-
init();
155135
}
156136

157137
</script>

demos/gum.html

+3-30
Original file line numberDiff line numberDiff line change
@@ -28,40 +28,13 @@
2828
</video>
2929
<p id="gum">getUserMeda either not supported or not allowed - so instead here's me and my son headbanging.</p>
3030
</article>
31+
<script src="/js/gum.js"></script>
3132
<script>
32-
var video = document.getElementById('video'),
33-
article = video.parentNode,
33+
var article = video.parentNode,
3434
gum = document.getElementById('gum');
3535

36-
function successCallback(stream) {
37-
window.stream = stream;
38-
if ('mozSrcObject' in video) {
39-
video.mozSrcObject = stream;
40-
} else if (window.webkitURL) {
41-
video.src = window.webkitURL.createObjectURL(stream);
42-
// document.querySelector('audio').src = window.webkitURL.createObjectURL(stream);
43-
} else {
44-
video.src = stream;
45-
}
46-
video.play();
47-
}
48-
49-
function errorCallback(error) {
50-
console.error('An error occurred: [CODE ' + error.code + ']', error);
51-
return;
52-
}
53-
54-
function init() {
55-
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
56-
57-
if (navigator.getUserMedia) {
58-
navigator.getUserMedia({video: true }, successCallback, errorCallback);
59-
}
60-
}
61-
62-
if (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia) {
36+
if (navigator.getUserMedia) {
6337
article.removeChild(gum);
6438
article.className = 'supported';
65-
init();
6639
}
6740
</script>

js/gum.js

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
var video = document.querySelector('video');
2+
3+
function gumSuccess(stream) {
4+
// window.stream = stream;
5+
if ('mozSrcObject' in video) {
6+
video.mozSrcObject = stream;
7+
} else if (window.webkitURL) {
8+
video.src = window.webkitURL.createObjectURL(stream);
9+
} else {
10+
video.src = stream;
11+
}
12+
video.play();
13+
}
14+
15+
function gumError(error) {
16+
console.error('Error on getUserMedia', error);
17+
}
18+
19+
function gumInit() {
20+
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
21+
22+
if (navigator.getUserMedia) {
23+
navigator.getUserMedia({video: true }, gumSuccess, gumError);
24+
}
25+
}
26+
27+
gumInit();

0 commit comments

Comments
 (0)