diff --git a/client/js/localwall.js b/client/js/localwall.js
index 430336c..a61c3af 100644
--- a/client/js/localwall.js
+++ b/client/js/localwall.js
@@ -44,7 +44,7 @@
function onDesktopStream(stream) {
var video = document.querySelector("#desktop");
- video.src = window.URL.createObjectURL(stream);
+ setVideoStream(video, stream);
}
navigator.getUserMedia(webcamOptions, onWebcamStream, function(e) {
@@ -53,7 +53,7 @@
function onWebcamStream(stream){
var video = document.querySelector("#webcam");
- video.src = window.URL.createObjectURL(stream);
+ setVideoStream(video, stream);
};
})();
diff --git a/client/js/remotewall.js b/client/js/remotewall.js
index 7b11f3c..52e0559 100644
--- a/client/js/remotewall.js
+++ b/client/js/remotewall.js
@@ -34,7 +34,7 @@
navigator.getUserMedia(videoOptions, function (stream) {
localVideoStream = stream;
- localVideoElem.src = URL.createObjectURL(localVideoStream);
+ setVideoStream(localVideoElem, localVideoStream);
createAndSendAnswer();
}, function (error) { console.log(error); });
}
@@ -47,7 +47,7 @@
localVideoElem.classList.add('hide');
}
if (remoteVideoElem) {
- remoteVideoElem.src = URL.createObjectURL(localVideoStream);
+ setVideoStream(remoteVideoElem, localVideoStream);
}
}
@@ -85,9 +85,9 @@
}
function onAddStreamHandler (e) {
- remoteVideoElem.src = URL.createObjectURL(e.stream);
+ setVideoStream(remoteVideoElem, e.stream);
if (localVideoStream) {
- localVideoElem.src = URL.createObjectURL(localVideoStream);
+ setVideoStream(localVideoElem, localVideoStream);
localVideoElem.classList.remove('hide');
}
}
diff --git a/client/js/sharer.js b/client/js/sharer.js
index 7c59e27..bdcc57a 100644
--- a/client/js/sharer.js
+++ b/client/js/sharer.js
@@ -67,7 +67,8 @@
navigator.getUserMedia(desktopOptions, function (stream) {
localVideoStream = stream;
- localVideoElem.src = URL.createObjectURL(localVideoStream);
+ setVideoStream(localVideoElem, localVideoStream);
+
peerConn.addStream(localVideoStream);
createAndSendOffer();
}, function (error) { console.log(error); });
diff --git a/client/js/utils.js b/client/js/utils.js
new file mode 100644
index 0000000..ea8611e
--- /dev/null
+++ b/client/js/utils.js
@@ -0,0 +1,8 @@
+function setVideoStream($video, stream){
+ // ref: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject
+ try {
+ $video.srcObject = stream;
+ } catch (error) {
+ $video.src = window.URL.createObjectURL(stream);
+ }
+}
\ No newline at end of file
diff --git a/client/localwall.html b/client/localwall.html
index 0f76728..6216765 100644
--- a/client/localwall.html
+++ b/client/localwall.html
@@ -21,6 +21,7 @@
+