From 7a669073a00f802e900898268b141c4116552587 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Wed, 14 Dec 2022 15:33:38 +0000 Subject: [PATCH] improve livestream style --- packages/app/package.json | 1 + packages/app/src/pages/live/[key].jsx | 65 ++++++++-- packages/app/src/pages/live/index.less | 169 ++++++++++++++++++++++--- 3 files changed, 202 insertions(+), 33 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index d516d7ac..5ef5e841 100755 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -88,6 +88,7 @@ "react-responsive-carousel": "^3.2.23", "react-reveal": "1.2.2", "react-rnd": "10.3.5", + "react-ticker": "^1.3.2", "remark-gfm": "^3.0.1", "rxjs": "^7.5.5", "store": "^2.0.12", diff --git a/packages/app/src/pages/live/[key].jsx b/packages/app/src/pages/live/[key].jsx index a5da124d..dbcbe953 100755 --- a/packages/app/src/pages/live/[key].jsx +++ b/packages/app/src/pages/live/[key].jsx @@ -2,10 +2,11 @@ import React from "react" import * as antd from "antd" -import Livestream from "../../models/livestream" +import Livestream from "models/livestream" import { FloatingPanel } from "antd-mobile" import { UserPreview, LiveChat } from "components" import { Icons } from "components/Icons" +import Ticker from "react-ticker" import Plyr from "plyr" import Hls from "hls.js" @@ -110,7 +111,10 @@ export default class StreamViewer extends React.Component { console.log("Stream info", streamInfo) - this.setState({ streamInfo: streamInfo }) + this.setState({ + streamInfo: streamInfo, + spectators: streamInfo.connectedClients, + }) } componentDidMount = async () => { @@ -142,10 +146,19 @@ export default class StreamViewer extends React.Component { await this.loadDecoder("flv", this.state.streamInfo.sources.flv) } + + // set a interval to update the stream info + this.streamInfoInterval = setInterval(() => { + this.loadStreamInfo(requestedUsername) + }, 1000 * 60 * 3) } componentWillUnmount = () => { this.exitPlayerAnimation() + + if (this.streamInfoInterval) { + clearInterval(this.streamInfoInterval) + } } enterPlayerAnimation = () => { @@ -226,24 +239,50 @@ export default class StreamViewer extends React.Component { } - return
-