Skip to content

Commit 52ed340

Browse files
committed
Merge branch 'hannosch-patch-1'
2 parents 4e0d1f7 + 0e06c17 commit 52ed340

File tree

4 files changed

+43
-57
lines changed

4 files changed

+43
-57
lines changed

demos.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"tags": "getUserMedia canvas",
66
"support": {
77
"live": "opera",
8-
"nightly": "chrome"
8+
"nightly": "chrome firefox"
99
},
1010
"test": "navigator.getUserMedia !== undefined"
1111
},
@@ -15,7 +15,7 @@
1515
"tags": "getUserMedia",
1616
"support": {
1717
"live": "opera",
18-
"nightly": "chrome"
18+
"nightly": "chrome firefox"
1919
},
2020
"test": "navigator.getUserMedia !== undefined"
2121
},

demos/gum-canvas.html

+9-27
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,30 +85,13 @@
8585
tb = rgb[2];
8686
};
8787

88-
89-
function init() {
90-
// from HTML5 Doctor article: http://html5doctor.com/getusermedia/
91-
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
92-
if (navigator.getUserMedia) {
93-
navigator.getUserMedia({ video: true }, successCallback, errorCallback);
94-
function successCallback(stream) {
95-
window.stream = stream;
96-
if (window.webkitURL) {
97-
video.src = window.webkitURL.createObjectURL(stream);
98-
} else {
99-
video.src = stream;
100-
}
101-
}
102-
function errorCallback(error) {
103-
console.error('An error occurred: [CODE ' + error.code + ']');
104-
return;
105-
}
106-
}
107-
}
108-
88+
// note: video is defined in gum.js
10989
video.addEventListener('loadedmetadata', function () {
110-
source.canvas.width = video.videoWidth;
111-
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+
}
11295
draw();
11396
});
11497

@@ -146,10 +129,9 @@
146129
var article = video.parentNode,
147130
gum = document.getElementById('gum');
148131

149-
if (navigator.getUserMedia || navigator.webkitGetUserMedia) {
132+
if (navigator.getUserMedia) {
150133
article.removeChild(gum);
151134
article.className = 'supported';
152-
init();
153135
}
154136

155137
</script>

demos/gum.html

+5-28
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
.supported video,
99
.supported audio {
10+
width: 100%;
1011
/* I'm using CSS3 to translate the video on the X axis to give it a mirror effect */
1112
-webkit-transform: rotateY(180deg) rotate3d(1, 0, 0, 0deg);
1213
-o-transform: rotateY(180deg) rotate3d(1, 0, 0, 0deg);
@@ -27,37 +28,13 @@
2728
</video>
2829
<p id="gum">getUserMeda either not supported or not allowed - so instead here's me and my son headbanging.</p>
2930
</article>
31+
<script src="/js/gum.js"></script>
3032
<script>
31-
var video = document.getElementById('video'),
32-
article = video.parentNode,
33+
var article = video.parentNode,
3334
gum = document.getElementById('gum');
3435

35-
function init() {
36-
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
37-
if (navigator.getUserMedia) {
38-
// NOTE: at time of writing March 26, 2012, audio isn't working in Chrome
39-
// navigator.getUserMedia('audio,video', successCallback, errorCallback);
40-
// Below is the latest syntax. Using the old syntax for the time being for backwards compatibility.
41-
navigator.getUserMedia({video: true, audio: true }, successCallback, errorCallback);
42-
function successCallback(stream) {
43-
window.stream = stream;
44-
if (window.webkitURL) {
45-
video.src = window.webkitURL.createObjectURL(stream);
46-
// document.querySelector('audio').src = window.webkitURL.createObjectURL(stream);
47-
} else {
48-
video.src = stream;
49-
}
50-
}
51-
function errorCallback(error) {
52-
console.error('An error occurred: [CODE ' + error.code + ']');
53-
return;
54-
}
55-
}
56-
}
57-
58-
if (navigator.getUserMedia || navigator.webkitGetUserMedia) {
36+
if (navigator.getUserMedia) {
5937
article.removeChild(gum);
6038
article.className = 'supported';
61-
init();
6239
}
63-
</script>
40+
</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)