Add splash/idle screen to receiver application

This commit is contained in:
hensm
2019-09-26 01:05:36 +01:00
parent 7ad041bb85
commit e1b15a12a2
3 changed files with 110 additions and 39 deletions

View File

@@ -1,20 +1,51 @@
"use strict";
const NAMESPACE = "urn:x-cast:fx_cast";
const castReceiverManager = cast.receiver.CastReceiverManager.getInstance();
const mediaElement = document.querySelector("#media");
const mediaElement = document.querySelector(".media");
const mediaManager = new cast.receiver.MediaManager(mediaElement);
mediaElement.height = window.innerHeight;
mediaElement.width = window.innerWidth;
let senderId;
const messageBus = castReceiverManager.getCastMessageBus(
NAMESPACE
"urn:x-cast:fx_cast"
, cast.receiver.CastMessageBus.MessageType.JSON);
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": {
await pc.addIceCandidate(data);
break;
}
case "close": {
window.close();
break;
}
}
};
const pc = new RTCPeerConnection();
@@ -24,39 +55,17 @@ pc.addEventListener("icecandidate", ev => {
, data: ev.candidate
});
});
pc.addEventListener("addstream", ev => {
mediaElement.srcObject = ev.stream;
mediaElement.webkitRequestFullscreen();
const splash = document.querySelector(".splash");
splash.classList.add("splash--disabled");
});
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
// TODO: Fix API shim to make this work
castReceiverManager.onSenderDisconnected = ev => {
if (castReceiverManager.getSenders().length <= 0) {
window.close();