mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
update colors + tweak code
This commit is contained in:
@@ -45,7 +45,7 @@ class CustomRecordPlugin extends RecordPlugin {
|
|||||||
|
|
||||||
analyser.getByteTimeDomainData(dataArray)
|
analyser.getByteTimeDomainData(dataArray)
|
||||||
canvasCtx.clearRect(0, 0, canvas.width, canvas.height)
|
canvasCtx.clearRect(0, 0, canvas.width, canvas.height)
|
||||||
canvasCtx.fillStyle = 'black'
|
canvasCtx.fillStyle = '#cc3347'
|
||||||
|
|
||||||
if (previousTimeStamp === undefined) {
|
if (previousTimeStamp === undefined) {
|
||||||
previousTimeStamp = timeStamp
|
previousTimeStamp = timeStamp
|
||||||
|
|||||||
@@ -7,19 +7,14 @@ import "react-dropdown/style.css";
|
|||||||
|
|
||||||
import CustomRecordPlugin from "./CustomRecordPlugin";
|
import CustomRecordPlugin from "./CustomRecordPlugin";
|
||||||
|
|
||||||
const queryAndPromptAudio = async () => {
|
|
||||||
const permissionStatus = await navigator.permissions.query({ name: 'microphone' })
|
|
||||||
if (permissionStatus.state == 'prompt') {
|
|
||||||
await navigator.mediaDevices.getUserMedia({ audio: true })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const AudioInputsDropdown = (props) => {
|
const AudioInputsDropdown = (props) => {
|
||||||
const [ddOptions, setDdOptions] = useState([]);
|
const [ddOptions, setDdOptions] = useState([]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const init = async () => {
|
const init = async () => {
|
||||||
await queryAndPromptAudio()
|
// Request permission to use audio inputs
|
||||||
|
await navigator.mediaDevices.getUserMedia({ audio: true }).then((stream) => stream.getTracks().forEach((t) => t.stop()))
|
||||||
|
|
||||||
const devices = await navigator.mediaDevices.enumerateDevices()
|
const devices = await navigator.mediaDevices.enumerateDevices()
|
||||||
const audioDevices = devices
|
const audioDevices = devices
|
||||||
@@ -62,8 +57,8 @@ export default function Recorder(props) {
|
|||||||
if (waveformRef.current) {
|
if (waveformRef.current) {
|
||||||
const _wavesurfer = WaveSurfer.create({
|
const _wavesurfer = WaveSurfer.create({
|
||||||
container: waveformRef.current,
|
container: waveformRef.current,
|
||||||
waveColor: "#cc3347",
|
waveColor: "#777",
|
||||||
progressColor: "#0178FFπ",
|
progressColor: "#222",
|
||||||
cursorColor: "OrangeRed",
|
cursorColor: "OrangeRed",
|
||||||
hideScrollbar: true,
|
hideScrollbar: true,
|
||||||
autoCenter: true,
|
autoCenter: true,
|
||||||
@@ -95,8 +90,7 @@ export default function Recorder(props) {
|
|||||||
if (!record) return console.log("no record");
|
if (!record) return console.log("no record");
|
||||||
|
|
||||||
if (record?.isRecording()) {
|
if (record?.isRecording()) {
|
||||||
|
props.onStop();
|
||||||
props.serverData.peer.send(JSON.stringify({ cmd: "STOP" }));
|
|
||||||
record.stopRecording();
|
record.stopRecording();
|
||||||
setIsRecording(false);
|
setIsRecording(false);
|
||||||
document.getElementById("play-btn").disabled = false;
|
document.getElementById("play-btn").disabled = false;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ const useWebRTC = (stream, setIsRecording) => {
|
|||||||
.then((response) => response.json())
|
.then((response) => response.json())
|
||||||
.then((answer) => peer.signal(answer))
|
.then((answer) => peer.signal(answer))
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
alert(e);
|
console.log("Error signaling:", e);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ const App = () => {
|
|||||||
// transcription, summary, etc
|
// transcription, summary, etc
|
||||||
const serverData = useWebRTC(stream, () => { });
|
const serverData = useWebRTC(stream, () => { });
|
||||||
|
|
||||||
|
const sendStopCmd = () => serverData?.peer?.send(JSON.stringify({ cmd: "STOP" }))
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-col items-center h-[100svh]">
|
<div className="flex flex-col items-center h-[100svh]">
|
||||||
<div className="text-center py-6 mt-10">
|
<div className="text-center py-6 mt-10">
|
||||||
@@ -19,7 +21,7 @@ const App = () => {
|
|||||||
<p className="text-gray-500">Capture The Signal, Not The Noise</p>
|
<p className="text-gray-500">Capture The Signal, Not The Noise</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Recorder setStream={setStream} serverData={serverData} />
|
<Recorder setStream={setStream} onStop={sendStopCmd} />
|
||||||
<Dashboard
|
<Dashboard
|
||||||
transcriptionText={serverData.text ?? "(No transcription yet)"}
|
transcriptionText={serverData.text ?? "(No transcription yet)"}
|
||||||
finalSummary={serverData.finalSummary}
|
finalSummary={serverData.finalSummary}
|
||||||
|
|||||||
Reference in New Issue
Block a user