Skip to content

feat(call): allow selecting the microphone, support of usb microphones - #7031

Open
ThorstenGrove wants to merge 1 commit into
nextcloud:masterfrom
ThorstenGrove:feat/microphone-selection
Open

ThorstenGrove wants to merge 1 commit into
nextcloud:masterfrom
ThorstenGrove:feat/microphone-selection

Conversation

@ThorstenGrove

@ThorstenGrove ThorstenGrove commented Nov 11, 2026 •

Copy link
Copy Markdown

Calls only offered a choice of the audio output; the input followed the output route. Input-only USB microphones such as wireless lavalier receivers were ignored, so calls kept recording from the built-in microphone.

Add a microphone section to the audio dialog in calls that lists the built-in microphone, a wired headset and USB microphones. The choice is persisted and passed to WebRTC through an explicitly created JavaAudioDeviceModule. In automatic mode an attached external microphone matching the output route is preferred, otherwise Android decides. Voice messages record from the selected microphone as well.

I added it to the existing Audio Output Dialog. This is because of two ux decisions:

  • When I tap on the mic button, I want to mute or unmute instantly.
  • Adding another button to the call ui is confusing.

Tested with a DJI Mic Mini (RX connected via USB-C) and a Aura USB-Mic connected with a USB-A to USB-C adapter.

Assisted-by: Claude Code:claude-opus-5-5

🖼️ Screenshots

🏚️ Before 🏡 After
none Screenshot_20261111_192341_Talk

🚧 TODO

  • Nothing, I guess

🏁 Checklist

  • ⛑️ Tests (unit and/or integration) are included or not needed
  • 🔖 Capability is checked or not needed
  • 🔙 Backport requests are created or not needed: /backport to stable-xx.x
  • 📅 Milestone is set
  • 🌸 PR title is meaningful (if it should be in the changelog: is it meaningful to users?)

🤖 AI (if applicable)

  • The content of this PR was partly or fully generated using AI

@mahibi

mahibi commented Nov 11, 2026

Copy link
Copy Markdown
Collaborator

Thank you for contributing @Looking4Cache 👋
Could you rebase this on latest master and also fix the signoff as described in https://github.com/nextcloud/talk-android/pull/7031/checks?check_run_id=130724005206 ?

@ThorstenGrove
ThorstenGrove force-pushed the feat/microphone-selection branch from ba59310 to 40f8a94 Compare November 12, 2026 04:47
Calls only offered a choice of the audio output; the input followed the
output route. Input-only USB microphones such as wireless lavalier
receivers were ignored, so calls kept recording from the built-in
microphone.

Add a microphone section to the audio dialog in calls that lists the
built-in microphone, a wired headset and USB microphones. The choice is
persisted and passed to WebRTC through an explicitly created
JavaAudioDeviceModule. In automatic mode an attached external microphone
matching the output route is preferred, otherwise Android decides.
Voice messages record from the selected microphone as well.

Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Thorsten Heilmann <account-github@grove.eco>
@ThorstenGrove
ThorstenGrove force-pushed the feat/microphone-selection branch from 40f8a94 to a231414 Compare November 12, 2026 05:10
@ThorstenGrove

Copy link
Copy Markdown
Author

@mahibi rebase and sign-off is done. Greetings.

@mahibi

mahibi commented Nov 12, 2026

Copy link
Copy Markdown
Collaborator

@mahibi rebase and sign-off is done. Greetings.

Thanks. I see that you already translated the strings in values-de/strings.xml.
This should not be done as translations are managed via transifex.
Feel free to change it, otherwise we can also do this minor change when reviewing/testing.

We will review soon.

@mahibi
mahibi self-requested a review November 12, 2026 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants