Move receiver to docs for hosting

This commit is contained in:
hensm
2019-01-14 00:09:29 +00:00
parent d545e1fbaf
commit aa2028442b
4 changed files with 1 additions and 0 deletions

9
docs/receiver/index.css Normal file
View File

@@ -0,0 +1,9 @@
body {
align-items: center;
display: flex;
justify-content: center;
}
#media {
max-height: 100vh;
max-width: 100vw;
}

10
docs/receiver/index.html Normal file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<script src="//www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js"></script>
<link rel="stylesheet" href="index.css">
</head>
<body>
<video id="media" autoplay></video>
<script src="index.js"></script>
</body>
</html>

66
docs/receiver/index.js Normal file
View File

@@ -0,0 +1,66 @@
"use strict";
const NAMESPACE = "urn:x-cast:fx_cast";
const castReceiverManager = cast.receiver.CastReceiverManager.getInstance();
const mediaElement = document.querySelector("#media");
const mediaManager = new cast.receiver.MediaManager(mediaElement);
mediaElement.width = window.innerWidth;
let senderId;
const messageBus = castReceiverManager.getCastMessageBus(
NAMESPACE
, cast.receiver.CastMessageBus.MessageType.JSON);
const pc = new RTCPeerConnection();
pc.addEventListener("icecandidate", ev => {
messageBus.send(senderId, {
subject: "iceCandidate"
, data: ev.candidate
});
});
pc.addEventListener("addstream", ev => {
mediaElement.srcObject = ev.stream;
mediaElement.webkitRequestFullscreen();
});
messageBus.onMessage = async message => {
const { subject, data } = message.data;
senderId = message.senderId;
switch (subject) {
case "peerConnectionOffer":
await pc.setRemoteDescription(data);
const desc = await pc.createAnswer();
await pc.setLocalDescription(desc);
messageBus.send(message.senderId, {
subject: "peerConnectionAnswer"
, data: desc
});
break;
case "iceCandidate":
console.log(data);
await pc.addIceCandidate(data);
break;
case "close":
window.close();
break;
}
};
// TODO: Fix APi shim to make this work
castReceiverManager.onSenderDisconnected = ev => {
if (castReceiverManager.getSenders().length <= 0) {
window.close();
}
};
castReceiverManager.start();