From 7f268a3e10f21dff7de4241f13b61525bd8bb3c1 Mon Sep 17 00:00:00 2001 From: Half-Shot Date: Fri, 25 Oct 2024 17:10:14 +0100 Subject: [PATCH] Add a sound for when a hand is raised. --- src/res/sounds/raise-hand.ogg | Bin 0 -> 7297 bytes src/room/InCallView.tsx | 7 +++++++ 2 files changed, 7 insertions(+) create mode 100644 src/res/sounds/raise-hand.ogg diff --git a/src/res/sounds/raise-hand.ogg b/src/res/sounds/raise-hand.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d1b350d5c8467e0c2b6e2e54e505d70786a53b9e GIT binary patch literal 7297 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 literal 0 HcmV?d00001 diff --git a/src/room/InCallView.tsx b/src/room/InCallView.tsx index 08454006..8cd2b47a 100644 --- a/src/room/InCallView.tsx +++ b/src/room/InCallView.tsx @@ -87,6 +87,7 @@ import { makeSpotlightLandscapeLayout } from "../grid/SpotlightLandscapeLayout"; import { makeSpotlightPortraitLayout } from "../grid/SpotlightPortraitLayout"; import { useMatrixRTCSessionMemberships } from "../useMatrixRTCSessionMemberships"; import { useReactions } from "../useReactions"; +import handSound from "../res/sounds/raise-hand.ogg?url"; const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {}); @@ -314,6 +315,8 @@ export const InCallView: FC = ({ const [reactionId, setReactionId] = useState(null); const userId = client.getUserId()!; + const handRaisePlayer = useRef(null); + const isHandRaised = !!raisedHands[userId]; useEffect(() => { @@ -369,6 +372,9 @@ export const InCallView: FC = ({ const content = event.getContent() as ReactionEventContent; if (content?.["m.relates_to"].key === "🖐️") { addRaisedHand(sender, new Date(event.localTimestamp)); + handRaisePlayer.current?.play().catch((ex) => { + logger.warn("Failed to play hand raise sound", ex); + }); } } if (event.getType() === EventType.RoomRedaction && event.getSender()) { @@ -737,6 +743,7 @@ export const InCallView: FC = ({ ))} {renderContent()} +