<html>
|
<head>
|
<title>WebRTC Streamer using WHEP</title>
|
<link rel="icon" type="image/png" href="webrtc.png" />
|
<link rel="stylesheet" type="text/css" href="styles.css">
|
<style>
|
whep-video {
|
text-align: center;
|
}
|
</style>
|
<script type="module" src="webrtc-streamer-element.js"></script>
|
<script type="module" src="webrtc-streamer-footer-element.js"></script>
|
<script type="module" src="webrtc-streamer-menu-element.js"></script>
|
<script type="module" src="webrtc-streamer-options-element.js"></script>
|
<script type="module" src="webrtc-streamer-algo-element.js"></script>
|
<script src="./libs/whep-video.component.js"></script>
|
</head>
|
<body>
|
<webrtc-streamer-menu id="selector" ></webrtc-streamer-menu>
|
<div id="content">
|
</div>
|
<webrtc-streamer-footer></webrtc-streamer-footer>
|
<script>
|
customElements.whenDefined('webrtc-streamer-menu').then(() => {
|
let selectorElement = document.getElementById("selector");
|
let streamElement = document.getElementById("content");
|
|
selectorElement.addEventListener('init', (event) => {
|
let mediaList = event.detail;
|
if (mediaList.length > 0) {
|
const random = mediaList.sort(() => .5 - Math.random());
|
let media = JSON.stringify(random[0])
|
selectorElement.setAttribute('selected', media);
|
}
|
});
|
selectorElement.addEventListener('change', (event) => {
|
const url= JSON.parse(event.detail.url);
|
streamElement.removeChild(streamElement.firstChild);
|
let whep = document.createElement('whep-video');
|
whep.setAttribute('muted', true);
|
whep.setAttribute('autoplay', true);
|
whep.setAttribute('src', `${location.protocol}//${location.hostname}:${location.port}/api/whep?url=${encodeURIComponent(url.video)}&audio=${encodeURIComponent(url.audio)}&options=rtptransport%3dtcp%26timeout%3d60`);
|
streamElement.appendChild(whep);
|
});
|
});
|
</script>
|
</body>
|
</html>
|