try and do the news noises
This commit is contained in:
parent
49572f7f0a
commit
5f6a7fec15
3 changed files with 50 additions and 0 deletions
|
@ -35,6 +35,7 @@
|
||||||
"camelcase": "^5.2.0",
|
"camelcase": "^5.2.0",
|
||||||
"case-sensitive-paths-webpack-plugin": "2.2.0",
|
"case-sensitive-paths-webpack-plugin": "2.2.0",
|
||||||
"css-loader": "2.1.1",
|
"css-loader": "2.1.1",
|
||||||
|
"date-fns": "^2.12.0",
|
||||||
"dotenv": "6.2.0",
|
"dotenv": "6.2.0",
|
||||||
"dotenv-expand": "5.1.0",
|
"dotenv-expand": "5.1.0",
|
||||||
"eslint": "^6.1.0",
|
"eslint": "^6.1.0",
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
import SdpTransform from "sdp-transform";
|
import SdpTransform from "sdp-transform";
|
||||||
|
import * as DateFns from "date-fns";
|
||||||
|
|
||||||
|
import * as MixerState from "../mixer/state";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Streamer,
|
Streamer,
|
||||||
|
@ -15,6 +18,9 @@ export class WebRTCStreamer extends Streamer {
|
||||||
state: StreamerState = "HELLO";
|
state: StreamerState = "HELLO";
|
||||||
isActive = false;
|
isActive = false;
|
||||||
|
|
||||||
|
newsInTimeout?: number;
|
||||||
|
newsOutTimeout?: number;
|
||||||
|
|
||||||
constructor(stream: MediaStream) {
|
constructor(stream: MediaStream) {
|
||||||
super();
|
super();
|
||||||
this.stream = stream;
|
this.stream = stream;
|
||||||
|
@ -50,6 +56,9 @@ export class WebRTCStreamer extends Streamer {
|
||||||
}
|
}
|
||||||
console.log("ICE Connection state change: " + this.pc.iceConnectionState);
|
console.log("ICE Connection state change: " + this.pc.iceConnectionState);
|
||||||
this.onStateChange(this.mapStateToConnectionState());
|
this.onStateChange(this.mapStateToConnectionState());
|
||||||
|
if (this.mapStateToConnectionState() === "CONNECTED") {
|
||||||
|
this.doTheNews();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
this.stream.getAudioTracks().forEach(track => this.pc!.addTrack(track));
|
this.stream.getAudioTracks().forEach(track => this.pc!.addTrack(track));
|
||||||
|
|
||||||
|
@ -78,6 +87,39 @@ export class WebRTCStreamer extends Streamer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
doTheNews() {
|
||||||
|
window.clearTimeout(this.newsInTimeout);
|
||||||
|
window.clearTimeout(this.newsOutTimeout);
|
||||||
|
const now = new Date();
|
||||||
|
if (
|
||||||
|
now.getMinutes() < 59 ||
|
||||||
|
(now.getMinutes() === 59 && now.getSeconds() < 45)
|
||||||
|
) {
|
||||||
|
const newsTime = DateFns.set(now, {
|
||||||
|
minutes: 59,
|
||||||
|
seconds: 45
|
||||||
|
});
|
||||||
|
const delta = newsTime.valueOf() - now.valueOf();
|
||||||
|
this.newsInTimeout = window.setTimeout(async () => {
|
||||||
|
await MixerState.playNewsIntro();
|
||||||
|
}, delta);
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
now.getMinutes() < 1 ||
|
||||||
|
now.getMinutes() >= 2 ||
|
||||||
|
(now.getMinutes() === 1 && now.getSeconds() < 50)
|
||||||
|
) {
|
||||||
|
const newsEndTime = DateFns.set(now, {
|
||||||
|
minutes: 0,
|
||||||
|
seconds: 55
|
||||||
|
});
|
||||||
|
const delta = newsEndTime.valueOf() - now.valueOf();
|
||||||
|
this.newsOutTimeout = window.setTimeout(async () => {
|
||||||
|
await MixerState.playNewsEnd();
|
||||||
|
}, delta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async onMessage(evt: MessageEvent) {
|
async onMessage(evt: MessageEvent) {
|
||||||
const data = JSON.parse(evt.data);
|
const data = JSON.parse(evt.data);
|
||||||
switch (data.kind) {
|
switch (data.kind) {
|
||||||
|
@ -136,9 +178,11 @@ export class WebRTCStreamer extends Streamer {
|
||||||
break;
|
break;
|
||||||
case "ACTIVATED":
|
case "ACTIVATED":
|
||||||
this.isActive = true;
|
this.isActive = true;
|
||||||
|
this.onStateChange("LIVE");
|
||||||
break;
|
break;
|
||||||
case "DEACTIVATED":
|
case "DEACTIVATED":
|
||||||
this.isActive = false;
|
this.isActive = false;
|
||||||
|
this.onStateChange(this.mapStateToConnectionState());
|
||||||
break;
|
break;
|
||||||
case "DIED":
|
case "DIED":
|
||||||
// oo-er
|
// oo-er
|
||||||
|
|
|
@ -3530,6 +3530,11 @@ data-urls@^1.0.0, data-urls@^1.1.0:
|
||||||
whatwg-mimetype "^2.2.0"
|
whatwg-mimetype "^2.2.0"
|
||||||
whatwg-url "^7.0.0"
|
whatwg-url "^7.0.0"
|
||||||
|
|
||||||
|
date-fns@^2.12.0:
|
||||||
|
version "2.12.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.12.0.tgz#01754c8a2f3368fc1119cf4625c3dad8c1845ee6"
|
||||||
|
integrity sha512-qJgn99xxKnFgB1qL4jpxU7Q2t0LOn1p8KMIveef3UZD7kqjT3tpFNNdXJelEHhE+rUgffriXriw/sOSU+cS1Hw==
|
||||||
|
|
||||||
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
|
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
|
||||||
version "2.6.9"
|
version "2.6.9"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||||
|
|
Loading…
Reference in a new issue