-
Notifications
You must be signed in to change notification settings - Fork 342
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(llc, ui): Async audio [DoNotMerge] #1486
base: master
Are you sure you want to change the base?
Conversation
…eed button position
3cc53a8
to
34b4ccd
Compare
Hi @deven98 Is there any timeline set to merge this PR in to the |
Hey @rgtstha 👋 We will likely not merge this PR, but we plan to implement this feature in the SDK soon. I cannot provide a strict estimate but it will likely be sometime in the next two months if that helps. You can also implement sending audio messages in the SDK with custom attachments if you need something urgently. Hope this helps. Thanks! |
Submit a pull request
CLA
Description of the pull request
This PR adds support for recorded audio messages (async audio messages).
The added functionalities to async audio messages are (Users are able to):
Screen.Recording.2023-03-16.at.21.51.50.mov
Screen.Recording.2023-03-16.at.21.52.49.mov
Screen.Recording.2023-03-16.at.21.56.25.mov
Screen.Recording.2023-03-16.at.21.56.58.mov
Implementation details
When recording, the audio bars are presented to the user and also stored in a list. After audio recording is complete normalization is done in the bars and they are presented to the users. The duration of the audio is also calculated during recording. After audio bars and duration are calculated, the audio is sent to the backend as an attachment with the type "voicenote". The duration and the bars are used when the message is displayed in the message list to present the correct UI without loading the audio file.
When the audio message doesn't have the audio bars. They are shown as a list of dots instead of the variables bars.
The audio file is streamed once "play" is pressed. So the message is only loaded when the user wants to hear it.
The wave bars are calculated from 0 to 1 and send to the backend as a list of doubles. The duration is sent to the backend in milliseconds.