Diffusers
MuseTalk1.5 / server /web /src /components /RecordButton.jsx
Marcos
Add H.264 WebSocket streaming and React.js web interface
32bba92
Raw
History Blame Contribute Delete
948 Bytes
import React from 'react'
export function RecordButton({
disabled,
isRecording,
onStart,
onStop,
text = 'Falar'
}) {
const handleMouseDown = () => {
if (!disabled) onStart?.()
}
const handleMouseUp = () => {
if (isRecording) onStop?.()
}
const handleMouseLeave = () => {
if (isRecording) onStop?.()
}
const handleTouchStart = (e) => {
e.preventDefault()
if (!disabled) onStart?.()
}
const handleTouchEnd = (e) => {
e.preventDefault()
if (isRecording) onStop?.()
}
const buttonText = disabled ? 'Conectando...' : (isRecording ? 'Soltar' : text)
return (
<button
className={`record-btn ${isRecording ? 'recording' : ''}`}
disabled={disabled}
onMouseDown={handleMouseDown}
onMouseUp={handleMouseUp}
onMouseLeave={handleMouseLeave}
onTouchStart={handleTouchStart}
onTouchEnd={handleTouchEnd}
>
{buttonText}
</button>
)
}