Skip to content

[Story] Record and send a voice message #2084

Closed
@jonnyandrew

Description

@jonnyandrew

Description

Record and send a voice message.

Acceptance criteria

  • It is behind a feature flag in developer settings
  • Tap and hold to record
  • Release to send (to be enhanced in [Story] Preview a voice message #2104 and [Story] Discard a voice message preview #2105)
  • System microphone permissions dialog displays if necessary
  • Navigating away stops recording
  • Navigating away discards the recording
  • Sent messages are in Opus audio format
  • Messages have a 30 minute maximum length
  • Sending an audio file attachment continues to work as expected
  • It interoperates with classic Element mobile and web apps
  • Files are not exposed through system file managers
  • It works in encrypted and unencrypted rooms
  • We should apply a sleep lock so the phone does not sleep and therefor stop a recording.
  • If a voice message fails to send the normal message retry button should work.
  • Sending a voice message quickly after another one should work.
  • Progress spinner displays while uploading media

Audio format

  • Sample rate: 48kHz
  • Bitrate: 24kbps
  • Mono (single channel)
  • Appropriate complexity and resample quality for the platform.
  • Encoder application: 2048 (voice, default is typically 2049 as audio) (out of scope for Android)

Size estimate

None

Dependencies

No response

Preconditions

No response

Sign-off

Android

  • Design sign-off on completion
  • QA sign-off on completion
  • Product sign-off on completion

iOS

  • Design sign-off on completion
  • QA sign-off on completion
  • Product sign-off on completion

Out of scope

Open questions

No response

Subtasks

### Android
- [x] Verified with build in screen reader
- [ ] https://github.com/vector-im/element-x-android/pull/1546
- [x] ~~Release to send~~ Release to show placeholder for preview state
- [x] System microphone permissions dialog displays if necessary
- [x] Navigating away stops recording
- [x] Navigating away discards the recording
- [x] Messages have a 30 minute maximum length
- [x] Progress indicator displays while uploading media
- [x] Verified 1 minute of audio ≈ 180 kilobytes
- [ ] https://github.com/vector-im/element-x-android/pull/1650
- [ ] https://github.com/vector-im/element-x-android/pull/1652
- [ ] https://github.com/vector-im/element-x-android/pull/1645
- [ ] https://github.com/vector-im/element-x-android/pull/1663
- [ ] https://github.com/vector-im/element-x-android/pull/1672
- [ ] https://github.com/vector-im/element-x-android/pull/1677
### iOS
- [ ] Verified with build in screen reader
- [ ] Tap and hold to record
- [ ] Release to send
- [ ] System microphone permissions dialog displays if necessary
- [ ] Navigating away stops recording
- [ ] Navigating away discards the recording
- [ ] Messages have a 30 minute maximum length
- [ ] Progress indicator displays while uploading media
- [ ] Verified 1 minute of audio ≈ 180 kilobytes
### Other
- [ ] https://github.com/matrix-org/matrix-rust-sdk/pull/2697

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions