nextcloud / nextcloud/spreed

Unmuting is not possible after taking out the Airpods and putting them back in

Open
#7,026 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug feature: call 📹 feature: frontend 🖌️
Dominant language
PHP
Stars
2.2k
Forks
587
Avg merge
18h 27m
Merged PRs (30d)
333

Description

Note that this is independent from #7002 (that issue is specific for Safari, this issue can be reproduced in Chromium and Firefox)

Joining a call using certain audio or video device or changing to another device while in a call causes a media track to be got from the device. Audio or video is seen as available (and, therefore, it is possible to enable or disable it) if there is a track from the device; otherwise audio or video is seen as not available.

If the Airpods microphone is used and the Airpods are taken out the microphone can not be enabled again after the Airpods are put back in. It is very likely (not verified, but a guess from the behaviour) that taking out the Airpods causes the audio track to be stopped, but that this does not modify the list of available devices. Therefore, as the audio track was stopped the audio is seen as not available, but as the list of available devices does not change nothing causes a new audio track to be automatically got again from the Airpods when they are put back in.

In fact, if the device selection screen is opened after putting the Airpods back in the volume bar will be shown in that screen if the user speaks, as a new track is got by the device selection screen when it is manually opened. However, this track is specific to the device selection screen; the call UI does not "know" that the Airpods were put back in, so it does not request a new track.

Workaround

After putting the Airpods back in its microphone can be enabled again without having to leave the call and join it again with the following steps:

  • Open the device selection screen
  • Select a different microphone (or "None")
  • Select again the Airpods

This will cause a new track to be got from the Airpods and, therefore, to make the audio available again.

How to reproduce

  • Connect AirPods
  • Join a call with microphone enabled
  • Mute microphone
  • Take out the AirPods and put them back in
Expected result

Microphone can be unmuted

Actual result

Microphone cannot be unmuted

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue with the call UI, the microphone enabled, and AirPods removed and reconnected; compare the call UI with the device selection screen, which obtains a new track when opened. Trace the microphone track and device-selection handling from those entry points. Done means the microphone can be unmuted after the AirPods are put back in without changing devices or leaving the call.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
audio-video-rtc
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.