diff --git a/subprojects/gst-examples/webrtc/sendrecv/js/index.html b/subprojects/gst-examples/webrtc/sendrecv/js/index.html index 2c5f65ee7c..b6915bf362 100644 --- a/subprojects/gst-examples/webrtc/sendrecv/js/index.html +++ b/subprojects/gst-examples/webrtc/sendrecv/js/index.html @@ -23,7 +23,7 @@ -
+
Status: unknown

diff --git a/subprojects/gst-examples/webrtc/sendrecv/js/webrtc.js b/subprojects/gst-examples/webrtc/sendrecv/js/webrtc.js index 02d1ea046e..d403a1bb27 100644 --- a/subprojects/gst-examples/webrtc/sendrecv/js/webrtc.js +++ b/subprojects/gst-examples/webrtc/sendrecv/js/webrtc.js @@ -64,7 +64,13 @@ function handleIncomingError(error) { } function getVideoElement() { - return document.getElementById("stream"); + var div = document.getElementById("video"); + var video_tag = document.createElement("video"); + video_tag.textContent = "Your browser doesn't support video"; + video_tag.autoplay = true; + video_tag.playsinline = true; + div.appendChild(video_tag); + return video_tag } function setStatus(text) { @@ -91,11 +97,8 @@ function resetVideo() { } }); - // Reset the video element and stop showing the last received frame - var videoElement = getVideoElement(); - videoElement.pause(); - videoElement.src = ""; - videoElement.load(); + // Remove all video players + document.getElementById("video").innerHTML = ""; } // SDP offer received from peer, set remote description and create an answer @@ -264,10 +267,10 @@ function websocketServerConnect() { } function onRemoteTrack(event) { - if (getVideoElement().srcObject !== event.streams[0]) { - console.log('Incoming stream'); - getVideoElement().srcObject = event.streams[0]; - } + var videoElem = getVideoElement(); + if (event.track.kind === 'audio') + videoElem.style = 'display: none;'; + videoElem.srcObject = new MediaStream([event.track]); } function errorUserMediaHandler() {