Add micropohone button for two way talk (#10408)

This commit is contained in:
Nicolas Mowen
2024-03-12 17:19:02 -06:00
committed by GitHub
parent 9e10b914c9
commit 92255f771b
3 changed files with 36 additions and 4 deletions

View File

@@ -40,6 +40,8 @@ import {
FaAngleUp,
FaCompress,
FaExpand,
FaMicrophone,
FaMicrophoneSlash,
} from "react-icons/fa";
import { GiSpeaker, GiSpeakerOff } from "react-icons/gi";
import { IoMdArrowBack } from "react-icons/io";
@@ -98,6 +100,7 @@ export default function LiveCameraView({ camera }: LiveCameraViewProps) {
// playback state
const [audio, setAudio] = useState(false);
const [mic, setMic] = useState(false);
const [fullscreen, setFullscreen] = useState(false);
const growClassName = useMemo(() => {
@@ -190,6 +193,16 @@ export default function LiveCameraView({ camera }: LiveCameraViewProps) {
}
}}
/>
{window.isSecureContext && (
<CameraFeatureToggle
className="p-2 md:p-0"
variant={fullscreen ? "overlay" : "primary"}
Icon={mic ? FaMicrophone : FaMicrophoneSlash}
isActive={mic}
title={`${mic ? "Disable" : "Enable"} Two Way Talk`}
onClick={() => setMic(!mic)}
/>
)}
<CameraFeatureToggle
className="p-2 md:p-0"
variant={fullscreen ? "overlay" : "primary"}
@@ -249,7 +262,8 @@ export default function LiveCameraView({ camera }: LiveCameraViewProps) {
showStillWithoutActivity={false}
cameraConfig={camera}
playAudio={audio}
preferredLiveMode={isSafari ? "webrtc" : "mse"}
micEnabled={mic}
preferredLiveMode={isSafari || mic ? "webrtc" : "mse"}
/>
</div>
{camera.onvif.host != "" && <PtzControlPanel camera={camera.name} />}
@@ -410,7 +424,10 @@ function PtzControlPanel({ camera }: { camera: string }) {
<DropdownMenuContent>
{ptz?.presets.map((preset) => {
return (
<DropdownMenuItem onSelect={() => sendPtz(`preset_${preset}`)}>
<DropdownMenuItem
key={preset}
onSelect={() => sendPtz(`preset_${preset}`)}
>
{preset}
</DropdownMenuItem>
);