Giter Club home page Giter Club logo

Comments (2)

youennf avatar youennf commented on July 19, 2024

Good point, unmute is somehow error-prone from the point of view of the UA, so I wonder what the error handling should be.
There are various possibilities:

  1. Reject the request as the current spec allows it.
  2. Unmute only the tracks it can unmute and keep the other tracks muted
  3. Unmute all tracks but end capture for the tracks it cannot unmute (in a sense, it failed starting capture).

from mediasession.

jan-ivar avatar jan-ivar commented on July 19, 2024

I hesitate calling it an "error". In my mind, we're unchecking ✅ Mute all not implementing Unmute all.

I think 2 is the only interoperable option. Example (UA1 implements a pause policy, UA2 doesn't):

  • The user is transmitting from two mics A and B, but has turned B off using a physical button on B
    • States: Both tracks are enabled but trackB is muted, so the audience only hears A (and silence from B)
  • The user needs a bio-break and checks ✅ Mute all in the app which sets enabled = false on both tracks and calls setMicrophoneActive(false)
    • States in UA1: Both tracks have enabled = false and both tracks are muted; audience hears silence
    • States in UA2: Both tracks have enabled = false but only trackB is muted; audience hears silence
  • The user comes back and unchecks ☐ Mute all in the app which sets enabled = true on both tracks and calls setMicrophoneActive(true)
    • States: Both tracks are enabled but trackB is muted, so the audience only hears A (and silence from B)

Importantly, the states are the same before and after the bio-break, regardless of UA. This seems interoperable, safe, unsurprising, and useful.

In contrast, 1 would fail setMicrophoneActive(true) and leave both tracks muted in UA1 but not UA2, and 3 would end trackB in UA1 but not UA2, which seems undesirable.

from mediasession.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.