Hold-to-record voice messages (microphone button) #15
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robocub/vommet#15
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
"Hold down to record a voice message" is a standard button in Telegram, WhatsApp, Discord mobile, Element and FluffyChat. Testers named it as the biggest missing UI piece in Commet.
What exists
pubspec.yaml.message_attachment.dart→AudioPlayer, media_kit), but they're shown as audio files, not as voice messages (no waveform, no duration).How Matrix clients send voice messages
An
m.room.messagewithmsgtype: m.audio, the file as Ogg/Opus (audio/ogg),info.durationin ms, plus:"org.matrix.msc3245.voice": {}: marks it as a voice message;"org.matrix.msc1767.audio": {"duration": <ms>, "waveform": [0..1024, …]}: duration and a waveform for the bubble.Element, FluffyChat and others render these as voice bubbles. Sending the same shape keeps us compatible both ways.
Plan
--socket=pulseaudiopermission, which the manifest already has); Windows native. Candidate: therecordpackage. Check its Linux backend doesn't depend on an external CLI that the Flatpak lacks.m.audiowithorg.matrix.msc3245.voice) as a voice bubble: play/pause, waveform with progress, duration, playback speed (1×/1.5×/2×).Acceptance
Hold the mic button on Android, say something, release: Element shows a voice message with a waveform and plays it. Same from Linux (Flatpak) and Windows via click-to-record. Voice messages from Element show as voice bubbles in Vommet.
Filed with LLM assistance. This is a fork-only issue; never refile it on Commet's tracker.