Return to normal state when time limit reached

This commit is contained in:
David Baker
2022-05-05 12:21:46 +01:00
parent ad3bde9920
commit 7edf544d73
2 changed files with 34 additions and 24 deletions

View File

@@ -17,6 +17,8 @@ export function usePTT(client, groupCall, userMediaFeeds) {
};
});
const [unmuteError, setUnmuteError] = useState(null);
useEffect(() => {
function onMuteStateChanged(...args) {
const activeSpeakerFeed = userMediaFeeds.find((f) => !f.isAudioMuted());
@@ -47,22 +49,26 @@ export function usePTT(client, groupCall, userMediaFeeds) {
};
}, [userMediaFeeds]);
const startTalking = useCallback(() => {
const startTalking = useCallback(async () => {
setState((prevState) => ({ ...prevState, pttButtonHeld: true }));
setUnmuteError(null);
if (!activeSpeakerUserId || isAdmin || talkOverEnabled) {
if (groupCall.isMicrophoneMuted()) {
groupCall.setMicrophoneMuted(false);
try {
await groupCall.setMicrophoneMuted(false);
} catch (e) {
setUnmuteError(e);
}
}
setState((prevState) => ({ ...prevState, pttButtonHeld: true }));
}
}, []);
}, [setUnmuteError]);
const stopTalking = useCallback(() => {
setState((prevState) => ({ ...prevState, pttButtonHeld: false }));
if (!groupCall.isMicrophoneMuted()) {
groupCall.setMicrophoneMuted(true);
}
setState((prevState) => ({ ...prevState, pttButtonHeld: false }));
}, []);
useEffect(() => {
@@ -70,6 +76,8 @@ export function usePTT(client, groupCall, userMediaFeeds) {
if (event.code === "Space") {
event.preventDefault();
if (pttButtonHeld) return;
startTalking();
}
}
@@ -100,7 +108,7 @@ export function usePTT(client, groupCall, userMediaFeeds) {
window.removeEventListener("keyup", onKeyUp);
window.removeEventListener("blur", onBlur);
};
}, [activeSpeakerUserId, isAdmin, talkOverEnabled]);
}, [activeSpeakerUserId, isAdmin, talkOverEnabled, pttButtonHeld]);
const setTalkOverEnabled = useCallback((talkOverEnabled) => {
setState((prevState) => ({
@@ -117,5 +125,6 @@ export function usePTT(client, groupCall, userMediaFeeds) {
activeSpeakerUserId,
startTalking,
stopTalking,
unmuteError,
};
}