From 48afb32c59e1813fd0358d81dcdc446714e68984 Mon Sep 17 00:00:00 2001 From: KkemChen Date: Wed, 22 May 2024 11:55:27 +0800 Subject: [PATCH] feat: add broadcast event for player count change --- src/Common/MediaSource.cpp | 3 ++- src/Common/config.cpp | 1 + src/Common/config.h | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Common/MediaSource.cpp b/src/Common/MediaSource.cpp index 8de8202a..a0e80ef0 100644 --- a/src/Common/MediaSource.cpp +++ b/src/Common/MediaSource.cpp @@ -651,7 +651,8 @@ MediaSource::Ptr MediaSource::createFromMP4(const string &schema, const string & /////////////////////////////////////MediaSourceEvent////////////////////////////////////// -void MediaSourceEvent::onReaderChanged(MediaSource &sender, int size){ +void MediaSourceEvent::onReaderChanged(MediaSource &sender, int size) { + NOTICE_EMIT(BroadcastPlayerCountChangedArgs, Broadcast::kBroadcastPlayerCountChanged, sender.getMediaTuple(), sender.totalReaderCount()); if (size || sender.totalReaderCount()) { //还有人观看该视频,不触发关闭事件 _async_close_timer = nullptr; diff --git a/src/Common/config.cpp b/src/Common/config.cpp index 8b7031ae..b87bc8ae 100644 --- a/src/Common/config.cpp +++ b/src/Common/config.cpp @@ -64,6 +64,7 @@ const string kBroadcastRtcSctpFailed = "kBroadcastRtcSctpFailed"; const string kBroadcastRtcSctpClosed = "kBroadcastRtcSctpClosed"; const string kBroadcastRtcSctpSend = "kBroadcastRtcSctpSend"; const string kBroadcastRtcSctpReceived = "kBroadcastRtcSctpReceived"; +const string kBroadcastPlayerCountChanged = "kBroadcastPlayerCountChanged"; } // namespace Broadcast diff --git a/src/Common/config.h b/src/Common/config.h index b10fe685..a22cbc20 100644 --- a/src/Common/config.h +++ b/src/Common/config.h @@ -124,6 +124,10 @@ extern const std::string kBroadcastRtcSctpSend; extern const std::string kBroadcastRtcSctpReceived; #define BroadcastRtcSctpReceivedArgs WebRtcTransport& sender, uint16_t &streamId, uint32_t &ppid, const uint8_t *&msg, size_t &len +// 观看人数变化广播 +extern const std::string kBroadcastPlayerCountChanged; +#define BroadcastPlayerCountChangedArgs const MediaTuple& args, int count + #define ReloadConfigTag ((void *)(0xFF)) #define RELOAD_KEY(arg, key) \ do { \